mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:02:20 +00:00
nvme: don't set io_opt if NOWS is zero
NOWS is one of the annoying "0's based values" in NVMe, where 0 means one and we thus can't detect if it isn't set. Thus a NOWS value of 0 means that the Namespace Optimal Write Size is a single LBA, which is clearly bogus. Ignore the value in that case and don't propagate an io_opt value to the block layer. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Reviewed-by: Nitesh Shetty <nj.shetty@samsung.com> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Link: https://lore.kernel.org/r/20240701051800.1245240-4-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
37105615f7
commit
f3bf25d513
@ -2024,7 +2024,8 @@ static bool nvme_update_disk_info(struct nvme_ns *ns, struct nvme_id_ns *id,
|
|||||||
/* NPWG = Namespace Preferred Write Granularity */
|
/* NPWG = Namespace Preferred Write Granularity */
|
||||||
phys_bs = bs * (1 + le16_to_cpu(id->npwg));
|
phys_bs = bs * (1 + le16_to_cpu(id->npwg));
|
||||||
/* NOWS = Namespace Optimal Write Size */
|
/* NOWS = Namespace Optimal Write Size */
|
||||||
io_opt = bs * (1 + le16_to_cpu(id->nows));
|
if (id->nows)
|
||||||
|
io_opt = bs * (1 + le16_to_cpu(id->nows));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user