Commit 85f6d5b7 authored by Benjamin Marzinski's avatar Benjamin Marzinski Committed by Mikulas Patocka
Browse files

dm-table: check BLK_FEAT_ATOMIC_WRITES inside limits_lock



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: b7c18b17 ("dm-table: Set BLK_FEAT_ATOMIC_WRITES for target queue limits")
Signed-off-by: default avatarBenjamin Marzinski <bmarzins@redhat.com>
Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
parent 050a3e71
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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: "