From: Al Viro Date: Wed, 20 Mar 2013 17:21:32 +0000 (-0400) Subject: lift sb_start_write out of ->splice_write() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=2dd8c9ad376ccc5d2980b38e96372a8e252ae8d0;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git lift sb_start_write out of ->splice_write() Signed-off-by: Al Viro --- diff --git a/fs/splice.c b/fs/splice.c index 17d7323bc2c5..7efc2f5057fb 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -1000,8 +1000,6 @@ generic_file_splice_write(struct pipe_inode_info *pipe, struct file *out, }; ssize_t ret; - sb_start_write(inode->i_sb); - pipe_lock(pipe); splice_from_pipe_begin(&sd); @@ -1037,7 +1035,6 @@ generic_file_splice_write(struct pipe_inode_info *pipe, struct file *out, *ppos += ret; balance_dirty_pages_ratelimited(mapping); } - sb_end_write(inode->i_sb); return ret; } @@ -1064,9 +1061,7 @@ static ssize_t default_file_splice_write(struct pipe_inode_info *pipe, { ssize_t ret; - file_start_write(out); ret = splice_from_pipe(pipe, out, ppos, len, flags, write_pipe_buf); - file_end_write(out); if (ret > 0) *ppos += ret; @@ -1119,7 +1114,10 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, else splice_write = default_file_splice_write; - return splice_write(pipe, out, ppos, len, flags); + file_start_write(out); + ret = splice_write(pipe, out, ppos, len, flags); + file_end_write(out); + return ret; } /*