summaryrefslogtreecommitdiff
path: root/fs/iomap/buffered-io.c
diff options
context:
space:
mode:
authorStefan Roesch <shr@fb.com>2022-06-23 20:51:49 +0300
committerJens Axboe <axboe@kernel.dk>2022-07-25 03:39:31 +0300
commit18e419f6e80a6d3c8aaab94abd55c3b41741d8df (patch)
tree4ad6deedf683742296827c66d511affffbf0fff5 /fs/iomap/buffered-io.c
parentcae2de6978915991a564e3c5c69b66b629c031af (diff)
downloadlinux-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/buffered-io.c')
-rw-r--r--fs/iomap/buffered-io.c4
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;
}