[PATCH 04/21] nvme: move NVME_QUIRK_DEALLOCATE_ZEROES out of nvme_config_discard

Max Gurtovoy mgurtovoy at nvidia.com
Thu Feb 29 02:48:34 PST 2024



On 28/02/2024 20:11, Christoph Hellwig wrote:
> Move the handling of the NVME_QUIRK_DEALLOCATE_ZEROES quirk out of
> nvme_config_discard so that it is combined with the normal write_zeroes
> limit handling.
> 
> Signed-off-by: Christoph Hellwig <hch at lst.de>
> ---
>   drivers/nvme/host/core.c | 11 ++++++-----
>   1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 74cd384ca5fc73..ee1e13a658c314 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -1816,9 +1816,6 @@ static void nvme_config_discard(struct nvme_ctrl *ctrl, struct gendisk *disk,
>   	else
>   		blk_queue_max_discard_segments(queue, NVME_DSM_MAX_RANGES);
>   	queue->limits.discard_granularity = queue_logical_block_size(queue);
> -
> -	if (ctrl->quirks & NVME_QUIRK_DEALLOCATE_ZEROES)
> -		blk_queue_max_write_zeroes_sectors(queue, UINT_MAX);
>   }
>   
>   static bool nvme_ns_ids_equal(struct nvme_ns_ids *a, struct nvme_ns_ids *b)
> @@ -2029,8 +2026,12 @@ static void nvme_update_disk_info(struct nvme_ctrl *ctrl, struct gendisk *disk,
>   	set_capacity_and_notify(disk, capacity);
>   
>   	nvme_config_discard(ctrl, disk, head);
> -	blk_queue_max_write_zeroes_sectors(disk->queue,
> -					   ctrl->max_zeroes_sectors);
> +
> +	if (ctrl->quirks & NVME_QUIRK_DEALLOCATE_ZEROES)
> +		blk_queue_max_write_zeroes_sectors(disk->queue, UINT_MAX);
> +	else
> +		blk_queue_max_write_zeroes_sectors(disk->queue,
> +				ctrl->max_zeroes_sectors);
>   }
>   
>   static bool nvme_ns_is_readonly(struct nvme_ns *ns, struct nvme_ns_info *info)

Looks good,
Reviewed-by: Max Gurtovoy <mgurtovoy at nvidia.com>



More information about the Linux-nvme mailing list