diff options
author | Stefan Roesch <shr@fb.com> | 2022-06-23 20:51:49 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-07-25 03:39:31 +0300 |
commit | 18e419f6e80a6d3c8aaab94abd55c3b41741d8df (patch) | |
tree | 4ad6deedf683742296827c66d511affffbf0fff5 /fs/iomap | |
parent | cae2de6978915991a564e3c5c69b66b629c031af (diff) | |
download | linux-18e419f6e80a6d3c8aaab94abd55c3b41741d8df.tar.xz |
iomap: Return -EAGAIN from iomap_write_iter()
If iomap_write_iter() encounters -EAGAIN, return -EAGAIN to the caller.
Signed-off-by: Stefan Roesch <shr@fb.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Link: https://lore.kernel.org/r/20220623175157.1715274-7-shr@fb.com
Reviewed-by: Christoph Hellwig <hch@lst.de>
[axboe: make the suggested ternary edit]
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/iomap')
-rw-r--r-- | fs/iomap/buffered-io.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c index 83cf093fcb92..c681eacc389b 100644 --- a/fs/iomap/buffered-io.c +++ b/fs/iomap/buffered-io.c @@ -830,6 +830,10 @@ again: length -= status; } while (iov_iter_count(i) && length); + if (status == -EAGAIN) { + iov_iter_revert(i, written); + return -EAGAIN; + } return written ? written : status; } |