summaryrefslogtreecommitdiffstats
path: root/include/linux/pipe_fs_i.h
diff options
context:
space:
mode:
authorMiklos Szeredi2016-09-27 10:45:12 +0200
committerAl Viro2016-10-06 00:23:58 +0200
commita779638cf622f069a484e8802134cca3c6c71415 (patch)
treea9eb77b635e86421465f6e06d1e29bc406cfdc8c /include/linux/pipe_fs_i.h
parentpipe: add pipe_buf_get() helper (diff)
downloadkernel-qcow2-linux-a779638cf622f069a484e8802134cca3c6c71415.tar.gz
kernel-qcow2-linux-a779638cf622f069a484e8802134cca3c6c71415.tar.xz
kernel-qcow2-linux-a779638cf622f069a484e8802134cca3c6c71415.zip
pipe: add pipe_buf_release() helper
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/pipe_fs_i.h')
-rw-r--r--include/linux/pipe_fs_i.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
index 10876f3cb3da..d24fa6da6ae3 100644
--- a/include/linux/pipe_fs_i.h
+++ b/include/linux/pipe_fs_i.h
@@ -126,6 +126,20 @@ static inline void pipe_buf_get(struct pipe_inode_info *pipe,
buf->ops->get(pipe, buf);
}
+/**
+ * pipe_buf_release - put a reference to a pipe_buffer
+ * @pipe: the pipe that the buffer belongs to
+ * @buf: the buffer to put a reference to
+ */
+static inline void pipe_buf_release(struct pipe_inode_info *pipe,
+ struct pipe_buffer *buf)
+{
+ const struct pipe_buf_operations *ops = buf->ops;
+
+ buf->ops = NULL;
+ ops->release(pipe, buf);
+}
+
/* Differs from PIPE_BUF in that PIPE_SIZE is the length of the actual
memory allocation, whereas PIPE_BUF makes atomicity guarantees. */
#define PIPE_SIZE PAGE_SIZE