]> www.infradead.org Git - nvme.git/commitdiff
btrfs: validate queue limits
authorChristoph Hellwig <hch@lst.de>
Wed, 13 Nov 2024 08:45:36 +0000 (09:45 +0100)
committerJens Axboe <axboe@kernel.dk>
Wed, 13 Nov 2024 18:40:11 +0000 (11:40 -0700)
Call blk_validate_limits on the queue limits used for zone append
splitting so that calculated values get filled in and any stacking
conflicts get cought.

Without this there isn't a max_zone_append_sectors limits as of commit
559218d43ec9 ("block: pre-calculate max_zone_append_sectors").

Fixes: 559218d43ec9 ("block: pre-calculate max_zone_append_sectors")
Reported-by: Yi Zhang <yi.zhang@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Link: https://lore.kernel.org/r/20241113084541.34315-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/btrfs/zoned.c

index 46b9386957e6b92d8e58a7956374e6cb96cbb007..64cdae31d348960051bcf9a8bf87aa6c9503246c 100644 (file)
@@ -711,6 +711,12 @@ int btrfs_check_zoned_mode(struct btrfs_fs_info *fs_info)
                        blk_stack_limits(lim, bdev_limits(device->bdev), 0);
        }
 
+       ret = blk_validate_limits(lim);
+       if (ret) {
+               btrfs_err(fs_info, "zoned: failed to validate queue limits");
+               return ret;
+       }
+
        /*
         * stripe_size is always aligned to BTRFS_STRIPE_LEN in
         * btrfs_create_chunk(). Since we want stripe_len == zone_size,