iomap: Return -EAGAIN from iomap_write_iter()
authorStefan Roesch <shr@fb.com>
Thu, 23 Jun 2022 17:51:49 +0000 (10:51 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 25 Jul 2022 00:39:31 +0000 (18:39 -0600)
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>
fs/iomap/buffered-io.c

index 83cf093..c681eac 100644 (file)
@@ -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;
 }