[PATCH] nvme: improve check for attached metadata buffers
Keith Busch
keith.busch at intel.com
Mon Nov 6 11:55:53 PST 2017
On Mon, Nov 06, 2017 at 08:01:52PM +0100, Christoph Hellwig wrote:
> @@ -476,14 +476,11 @@ static inline blk_status_t nvme_setup_rw(struct nvme_ns *ns,
> u32 dsmgmt = 0;
>
> /*
> - * If formated with metadata, require the block layer provide a buffer
> - * unless this namespace is formated such that the metadata can be
> - * stripped/generated by the controller with PRACT=1.
> + * The block layer should always provide a metadata buffer if the
> + * namespace is formatted with metadata.
> */
> - if (ns && ns->ms &&
> - (!ns->pi_type || ns->ms != sizeof(struct t10_pi_tuple)) &&
> - !blk_integrity_rq(req) && !blk_rq_is_passthrough(req))
> - return BLK_STS_NOTSUPP;
> + if (WARN_ON_ONCE(ns->ms && !blk_integrity_rq(req)))
> + return BLK_STS_IOERR;
Sorry for missing this case earlier: this will break namespace usage
when CONFIG_BLK_DEV_INTEGRITY is not set, and the format allows PRACT=1
to strip/generate.
More information about the Linux-nvme
mailing list