summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorKeith Busch <kbusch@kernel.org>2026-07-20 13:10:53 -0700
committerJens Axboe <axboe@kernel.dk>2026-07-30 15:54:06 -0600
commit75ae18ca942674f9d5b55d7e8a2975485125f715 (patch)
treefd5162886c29d9c1a05c50536c9aaa71396bd931 /block
parentf5098b6bae761e346ebcd9da7f95622c04733cff (diff)
block: use blkdev_iov_iter_get_pages status for errors
blkdev_iov_iter_get_pages() can return various error values, including EIO, EFAULT, and ENOMEM. Set the actual reported status so user space can know why an operation failed. Reviewed-by: Hannes Reinecke <hare@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Keith Busch <kbusch@kernel.org> Link: https://patch.msgid.link/20260720201057.1862857-2-kbusch@meta.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r--block/fops.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/block/fops.c b/block/fops.c
index 15783a6180de..0827bb884d47 100644
--- a/block/fops.c
+++ b/block/fops.c
@@ -218,7 +218,7 @@ static ssize_t __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
ret = blkdev_iov_iter_get_pages(bio, iter, bdev);
if (unlikely(ret)) {
- bio_endio_status(bio, BLK_STS_IOERR);
+ bio_endio_status(bio, errno_to_blk_status(ret));
break;
}
if (iocb->ki_flags & IOCB_NOWAIT) {