lift sb_start_write into default_file_splice_write()
authorAl Viro <viro@zeniv.linux.org.uk>
Wed, 20 Mar 2013 17:19:30 +0000 (13:19 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 9 Apr 2013 18:12:57 +0000 (14:12 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/splice.c

index e78a749064db297f968fbaa7157502d3e7fd1a85..17d7323bc2c50414b823fc4c5d9bd8b980a5c919 100644 (file)
@@ -1052,9 +1052,7 @@ static int write_pipe_buf(struct pipe_inode_info *pipe, struct pipe_buffer *buf,
        loff_t tmp = sd->pos;
 
        data = buf->ops->map(pipe, buf, 0);
-       file_start_write(sd->u.file);
        ret = __kernel_write(sd->u.file, data + buf->offset, sd->len, &tmp);
-       file_end_write(sd->u.file);
        buf->ops->unmap(pipe, buf, data);
 
        return ret;
@@ -1066,7 +1064,9 @@ 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;