[PATCH] nvme: disable namespaces with unsupported metadata

Christoph Hellwig hch at lst.de
Wed Nov 24 10:47:57 PST 2021


On Tue, Nov 23, 2021 at 09:45:54AM -0800, Keith Busch wrote:
> The only fabrics target that supports metadata is RDMA and usable only
> if it is 8B per block, and formatted for protection information. If an
> rdma target were to export a namespace with a different format (ex:
> 4k+64B), the driver will not be able to submit a valid command for that
> format.
> 
> Suppress exporting these namespaces as read/writeable to the block
> stack.

Where do we disable the namepsace?  We only do not set the metadata
supported flag here, don't we?

> +		/*
> +		 * Currently rdma is the only fabrics nvme host that supports
> +		 * metadata integrity segments, but will not use the metadata
> +		 * payload if it doesn't satisfy 'nvme_ns_has_pi()'.

s/fabric nvme host/transport/

> Since the
> +		 * initiator is not able to form requests that satisify the
> +		 * format, do not support the namespace if the metadata does
> +		 * not satisfy that requirement.
> +		 */

I can't really parse this sentence.  Also initiator doesn't make much
sense in a NVMe context.



More information about the Linux-nvme mailing list