]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ublk: don't clear GD_SUPPRESS_PART_SCAN for unprivileged daemons
authorMing Lei <ming.lei@redhat.com>
Sun, 8 Mar 2026 14:39:02 +0000 (22:39 +0800)
committerJens Axboe <axboe@kernel.dk>
Mon, 9 Mar 2026 13:37:36 +0000 (07:37 -0600)
When UBLK_F_NO_AUTO_PART_SCAN is set, GD_SUPPRESS_PART_SCAN is cleared
unconditionally, including for unprivileged daemons. Keep it consistent
with the code block for setting GD_SUPPRESS_PART_SCAN by not clearing
it for unprivileged daemons.

In reality this isn't a problem because ioctl(BLKRRPART) requires
CAP_SYS_ADMIN, but it is more reliable to not clear the bit.

Cc: Alexander Atanasov <alex@zazolabs.com>
Fixes: 8443e2087e70 ("ublk: add UBLK_F_NO_AUTO_PART_SCAN feature flag")
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/ublk_drv.c

index 03edabdf89776334aa81a379f6ddc7c072ae9b80..9f6e9109d31043453b5ea3216da2741ecbfbf608 100644 (file)
@@ -4440,7 +4440,9 @@ static int ublk_ctrl_start_dev(struct ublk_device *ub,
 
        /* Skip partition scan if disabled by user */
        if (ub->dev_info.flags & UBLK_F_NO_AUTO_PART_SCAN) {
-               clear_bit(GD_SUPPRESS_PART_SCAN, &disk->state);
+               /* Not clear for unprivileged daemons, see comment above */
+               if (!ub->unprivileged_daemons)
+                       clear_bit(GD_SUPPRESS_PART_SCAN, &disk->state);
        } else {
                /* Schedule async partition scan for trusted daemons */
                if (!ub->unprivileged_daemons)