mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
lift sb_start_write out of ->splice_write()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
17338fccb2
commit
2dd8c9ad37
10
fs/splice.c
10
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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user