From: Al Viro Date: Fri, 24 May 2013 00:10:34 +0000 (-0400) Subject: lift file_*_write out of do_splice_direct() X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=50cd2c577668a170750b15f9a88f022f681ce3c7;p=linux-beck.git lift file_*_write out of do_splice_direct() Signed-off-by: Al Viro --- diff --git a/fs/read_write.c b/fs/read_write.c index 2cefa417be34..abca7437d192 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -1129,7 +1129,9 @@ static ssize_t do_sendfile(int out_fd, int in_fd, loff_t *ppos, if (in.file->f_flags & O_NONBLOCK) fl = SPLICE_F_NONBLOCK; #endif + file_start_write(out.file); retval = do_splice_direct(in.file, &pos, out.file, &out_pos, count, fl); + file_end_write(out.file); if (retval > 0) { add_rchar(current, retval); diff --git a/fs/splice.c b/fs/splice.c index fed5134f761c..78b3d12046e7 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -1303,11 +1303,9 @@ long do_splice_direct(struct file *in, loff_t *ppos, struct file *out, }; long ret; - file_start_write(out); ret = splice_direct_to_actor(in, &sd, direct_splice_actor); if (ret > 0) *ppos = sd.pos; - file_end_write(out); return ret; }