]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
dm-table: check BLK_FEAT_ATOMIC_WRITES inside limits_lock
authorBenjamin Marzinski <bmarzins@redhat.com>
Fri, 30 May 2025 14:50:32 +0000 (10:50 -0400)
committerMikulas Patocka <mpatocka@redhat.com>
Mon, 2 Jun 2025 12:24:51 +0000 (14:24 +0200)
dm_set_device_limits() should check q->limits.features for
BLK_FEAT_ATOMIC_WRITES while holding q->limits_lock, like it does for
the rest of the queue limits.

Fixes: b7c18b17a173 ("dm-table: Set BLK_FEAT_ATOMIC_WRITES for target queue limits")
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
drivers/md/dm-table.c

index 57573e8b5aa97b2865b1b5493c140100a273a45b..9f95f77687ef14544842caf402b0b202185379fc 100644 (file)
@@ -430,13 +430,13 @@ static int dm_set_device_limits(struct dm_target *ti, struct dm_dev *dev,
                return 0;
        }
 
+       mutex_lock(&q->limits_lock);
        /*
         * BLK_FEAT_ATOMIC_WRITES is not inherited from the bottom device in
         * blk_stack_limits(), so do it manually.
         */
        limits->features |= (q->limits.features & BLK_FEAT_ATOMIC_WRITES);
 
-       mutex_lock(&q->limits_lock);
        if (blk_stack_limits(limits, &q->limits,
                        get_start_sect(bdev) + start) < 0)
                DMWARN("%s: adding target device %pg caused an alignment inconsistency: "