mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
splice: simplify a conditional in copy_splice_read
Check for -EFAULT instead of wrapping the check in an ret < 0 block. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Reviewed-by: Christian Brauner <brauner@kernel.org> Reviewed-by: David Howells <dhowells@redhat.com> Link: https://lore.kernel.org/r/20230614140341.521331-3-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
0b24be4691
commit
2e82f6c3bf
14
fs/splice.c
14
fs/splice.c
@ -368,15 +368,15 @@ ssize_t copy_splice_read(struct file *in, loff_t *ppos,
|
||||
if (ret > 0) {
|
||||
keep = DIV_ROUND_UP(ret, PAGE_SIZE);
|
||||
*ppos = kiocb.ki_pos;
|
||||
} else if (ret < 0) {
|
||||
/*
|
||||
* callers of ->splice_read() expect -EAGAIN on
|
||||
* "can't put anything in there", rather than -EFAULT.
|
||||
*/
|
||||
if (ret == -EFAULT)
|
||||
ret = -EAGAIN;
|
||||
}
|
||||
|
||||
/*
|
||||
* Callers of ->splice_read() expect -EAGAIN on "can't put anything in
|
||||
* there", rather than -EFAULT.
|
||||
*/
|
||||
if (ret == -EFAULT)
|
||||
ret = -EAGAIN;
|
||||
|
||||
/* Free any pages that didn't get touched at all. */
|
||||
if (keep < npages)
|
||||
release_pages(pages + keep, npages - keep);
|
||||
|
Loading…
Reference in New Issue
Block a user