On Fri, Dec 18, 2020, at 19:08, Keith Busch wrote:
> On Thu, Dec 17, 2020 at 10:02:22PM +0100, Klaus Jensen wrote:
> > static uint16_t nvme_rw(NvmeCtrl *n, NvmeRequest *req)
> > {
> > NvmeRwCmd *rw = (NvmeRwCmd *)&req->cmd;
> > NvmeNamespace *ns = req->ns;
> > uint32_t nlb = (ui
On Thu, Dec 17, 2020 at 10:02:22PM +0100, Klaus Jensen wrote:
> static uint16_t nvme_rw(NvmeCtrl *n, NvmeRequest *req)
> {
> NvmeRwCmd *rw = (NvmeRwCmd *)&req->cmd;
> NvmeNamespace *ns = req->ns;
> uint32_t nlb = (uint32_t)le16_to_cpu(rw->nlb) + 1;
> uint64_t slba = le64_to_cp
From: Gollu Appalanaidu
Add support for namespaces formatted with protection information in the
form of the Data Integrity Field (DIF) where the protection information
is contiguous with the logical block data (extended logical blocks). The
type of end-to-end data protection (i.e. Type 1, Type 2