hw/block/nvme: conditionally enable DULBE for zoned namespaces
authorKlaus Jensen <k.jensen@samsung.com>
Mon, 11 Jan 2021 12:52:40 +0000 (13:52 +0100)
committerKlaus Jensen <k.jensen@samsung.com>
Mon, 8 Feb 2021 20:15:49 +0000 (21:15 +0100)
commit1b5804a80d8bd6ecb8910e864afb89049279df17
tree3fd799fff2521c7afa81c3c3030f6aab4072e9eb
parent55886345d01d72a03cbfaf1c4d89f967174dedd9
hw/block/nvme: conditionally enable DULBE for zoned namespaces

The device uses the BDRV_BLOCK_ZERO flag to determine the "deallocated"
status of logical blocks. Since the zoned namespaces command set
specification defines that logical blocks SHALL be marked as deallocated
when the zone is in the Empty or Offline states, DULBE can only be
supported if the zone size is a multiple of the calculated deallocation
granularity (reported in NPDG) which depends on the underlying block
device cluster size (if applicable) or the configured
discard_granularity.

Reviewed-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
hw/block/nvme-ns.c