[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