[PATCH] nvme: disable namespaces with unsupported metadata

Keith Busch kbusch at kernel.org
Wed Nov 24 11:57:06 PST 2021


On Wed, Nov 24, 2021 at 07:47:57PM +0100, Christoph Hellwig wrote:
> 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?

Without the flag set, a namespace with metadata gets to be 0 capacity.
That will make it unusable through the block stack r/w path, at least.
 
> > +		/*
> > +		 * 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.

I'll reword this.



More information about the Linux-nvme mailing list