summaryrefslogtreecommitdiffstats
path: root/include/linux/splice.h
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2009-04-14 19:48:39 +0200
committerJens Axboe <jens.axboe@oracle.com>2009-04-15 12:10:12 +0200
commit328eaaba4e41a04c1dc4679d65bea3fee4349d86 (patch)
tree171bf86b590a841729bab11feec874869bcab49e /include/linux/splice.h
parenteb443e5a25d43996deb62b9bcee1a4ce5dea2ead (diff)
downloadlinux-328eaaba4e41a04c1dc4679d65bea3fee4349d86.tar.gz
linux-328eaaba4e41a04c1dc4679d65bea3fee4349d86.tar.bz2
linux-328eaaba4e41a04c1dc4679d65bea3fee4349d86.zip
ocfs2: fix i_mutex locking in ocfs2_splice_to_file()
Rearrange locking of i_mutex on destination and call to ocfs2_rw_lock() so locks are only held while buffers are copied with the pipe_to_file() actor, and not while waiting for more data on the pipe. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'include/linux/splice.h')
-rw-r--r--include/linux/splice.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/splice.h b/include/linux/splice.h
index 8fc2a635586e..5f3faa9d15ae 100644
--- a/include/linux/splice.h
+++ b/include/linux/splice.h
@@ -75,6 +75,8 @@ extern int splice_from_pipe_next(struct pipe_inode_info *,
extern void splice_from_pipe_begin(struct splice_desc *);
extern void splice_from_pipe_end(struct pipe_inode_info *,
struct splice_desc *);
+extern int pipe_to_file(struct pipe_inode_info *, struct pipe_buffer *,
+ struct splice_desc *);
extern ssize_t splice_to_pipe(struct pipe_inode_info *,
struct splice_pipe_desc *);