]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
nvmet: propagate npwg topology
authorLuis Chamberlain <mcgrof@kernel.org>
Wed, 18 Dec 2024 02:33:25 +0000 (18:33 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 Jan 2025 16:16:01 +0000 (17:16 +0100)
[ Upstream commit b579d6fdc3a9149bb4d2b3133cc0767130ed13e6 ]

Ensure we propagate npwg to the target as well instead
of assuming its the same logical blocks per physical block.

This ensures devices with large IUs information properly
propagated on the target.

Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/nvme/target/io-cmd-bdev.c

index 0fc2781ab97080ebf9dcf1b2b0f1b5787b95ba06..58da949696c211b8fed7a22f37c0589d4faf6e8b 100644 (file)
@@ -36,7 +36,7 @@ void nvmet_bdev_set_limits(struct block_device *bdev, struct nvme_id_ns *id)
         */
        id->nsfeat |= 1 << 4;
        /* NPWG = Namespace Preferred Write Granularity. 0's based */
-       id->npwg = lpp0b;
+       id->npwg = to0based(bdev_io_min(bdev) / bdev_logical_block_size(bdev));
        /* NPWA = Namespace Preferred Write Alignment. 0's based */
        id->npwa = id->npwg;
        /* NPDG = Namespace Preferred Deallocate Granularity. 0's based */