nvme: enforce extended LBA format for fabrics metadata
authorMax Gurtovoy <maxg@mellanox.com>
Tue, 19 May 2020 14:05:53 +0000 (17:05 +0300)
committerChristoph Hellwig <hch@lst.de>
Wed, 27 May 2020 05:12:39 +0000 (07:12 +0200)
commit33cfdc2aa6969829f42640f758357e4b015e9f7d
treea81a92d4786a381bc88490f9f7e410b9042544d2
parent95093350394a394e7c4e778176194b14b76ec5d8
nvme: enforce extended LBA format for fabrics metadata

An extended LBA is a larger LBA that is created when metadata associated
with the LBA is transferred contiguously with the LBA data (AKA
interleaved). The metadata may be either transferred as part of the LBA
(creating an extended LBA) or it may be transferred as a separate
contiguous buffer of data. According to the NVMeoF spec, a fabrics ctrl
supports only an Extended LBA format. Fail revalidation in case we have a
spec violation. Also add a flag that will imply on capable transports and
controllers as part of a preparation for allowing end-to-end protection
information for fabric controllers.

Suggested-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Max Gurtovoy <maxg@mellanox.com>
Signed-off-by: Israel Rukshin <israelr@mellanox.com>
Reviewed-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/core.c