summaryrefslogtreecommitdiffstats
path: root/block/ioctl.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2024-04-17 16:47:43 +0200
committerJens Axboe <axboe@kernel.dk>2024-04-18 09:34:34 -0600
commit752863bddacab6b5c5164b1df8c8b2e3a175ee28 (patch)
tree8b160fd02307b3d55c312a3a582b1ae08986ae48 /block/ioctl.c
parent3ec4848913d695245716ea45ca4872d9dff097a5 (diff)
downloadlinux-stable-752863bddacab6b5c5164b1df8c8b2e3a175ee28.tar.gz
linux-stable-752863bddacab6b5c5164b1df8c8b2e3a175ee28.tar.bz2
linux-stable-752863bddacab6b5c5164b1df8c8b2e3a175ee28.zip
block: propagate partition scanning errors to the BLKRRPART ioctl
Commit 4601b4b130de ("block: reopen the device in blkdev_reread_part") lost the propagation of I/O errors from the low-level read of the partition table to the user space caller of the BLKRRPART. Apparently some user space relies on, so restore the propagation. This isn't exactly pretty as other block device open calls explicitly do not are about these errors, so add a new BLK_OPEN_STRICT_SCAN to opt into the error propagation. Fixes: 4601b4b130de ("block: reopen the device in blkdev_reread_part") Reported-by: Saranya Muruganandam <saranyamohan@google.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> Reviewed-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Tested-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Link: https://lore.kernel.org/r/20240417144743.2277601-1-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/ioctl.c')
-rw-r--r--block/ioctl.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/block/ioctl.c b/block/ioctl.c
index a9028a2c2db5..f505f9c341eb 100644
--- a/block/ioctl.c
+++ b/block/ioctl.c
@@ -563,7 +563,8 @@ static int blkdev_common_ioctl(struct block_device *bdev, blk_mode_t mode,
return -EACCES;
if (bdev_is_partition(bdev))
return -EINVAL;
- return disk_scan_partitions(bdev->bd_disk, mode);
+ return disk_scan_partitions(bdev->bd_disk,
+ mode | BLK_OPEN_STRICT_SCAN);
case BLKTRACESTART:
case BLKTRACESTOP:
case BLKTRACETEARDOWN: