iomap: Don't fall back to bufferred write if the write is atomic
Subsystems (3)
RFC 1/7 iomap: Don't fall back to bufferred write if the write is atomic
In reply to a message not in the archiveCurrently, iomap only supports atomic writes for direct IOs and there is no guarantees that a bufferred IO will be atomic. Hence, if the user has explicitly requested the direct write to be atomic and there's a failure, return -EIO instead of falling back to bufferred IO.
Signed-off-by Ojaswin Mujoo <[email protected]>
--- fs/iomap/direct-io.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
fs/iomap/direct-io.c +7 -1
@@ -662,7 +662,13 @@ __iomap_dio_rw(struct kiocb *iocb, struct iov_iter *iter,if (ret != -EAGAIN ) {trace_iomap_dio_invalidate_fail (inode, iomi.pos, iomi.len); - ret = -ENOTBLK ; +/* +* if this write was supposed to be atomic, +* return the err rather than trying to fall +* back to bufferred IO. +*/ +if (!atomic_write) + ret = -ENOTBLK ; } goto out_free_dio; }
Signature · 1 line
2.39.3