aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2007-06-11 06:00:45 -0400
committerJens Axboe <jens.axboe@oracle.com>2007-07-10 02:04:14 -0400
commit497f9625c2bbd6a8525fb2eedb22a382a6a8253c (patch)
tree8637f882dbe2eea6a731a6df0317a276bf2cfec3
parentd6b29d7cee064f28ca097e906de7453541351095 (diff)
pipe: allow passing around of ops private pointer
relay needs this for proper consumption handling, and the network receive support needs it as well to lookup the sk_buff on pipe release. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
-rw-r--r--fs/splice.c1
-rw-r--r--include/linux/pipe_fs_i.h1
-rw-r--r--include/linux/splice.h1
3 files changed, 3 insertions, 0 deletions
diff --git a/fs/splice.c b/fs/splice.c
index bea9f1581ca0..00850e56280d 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -185,6 +185,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
185 buf->page = spd->pages[page_nr]; 185 buf->page = spd->pages[page_nr];
186 buf->offset = spd->partial[page_nr].offset; 186 buf->offset = spd->partial[page_nr].offset;
187 buf->len = spd->partial[page_nr].len; 187 buf->len = spd->partial[page_nr].len;
188 buf->private = spd->partial[page_nr].private;
188 buf->ops = spd->ops; 189 buf->ops = spd->ops;
189 if (spd->flags & SPLICE_F_GIFT) 190 if (spd->flags & SPLICE_F_GIFT)
190 buf->flags |= PIPE_BUF_FLAG_GIFT; 191 buf->flags |= PIPE_BUF_FLAG_GIFT;
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
index 7ba228d52f58..4409167b9eb2 100644
--- a/include/linux/pipe_fs_i.h
+++ b/include/linux/pipe_fs_i.h
@@ -14,6 +14,7 @@ struct pipe_buffer {
14 unsigned int offset, len; 14 unsigned int offset, len;
15 const struct pipe_buf_operations *ops; 15 const struct pipe_buf_operations *ops;
16 unsigned int flags; 16 unsigned int flags;
17 unsigned long private;
17}; 18};
18 19
19struct pipe_inode_info { 20struct pipe_inode_info {
diff --git a/include/linux/splice.h b/include/linux/splice.h
index f8cc97f71cd0..33e447f98a54 100644
--- a/include/linux/splice.h
+++ b/include/linux/splice.h
@@ -41,6 +41,7 @@ struct splice_desc {
41struct partial_page { 41struct partial_page {
42 unsigned int offset; 42 unsigned int offset;
43 unsigned int len; 43 unsigned int len;
44 unsigned long private;
44}; 45};
45 46
46/* 47/*