> /* Assume mpsmin == device_page_size == 4KB */ > #define NVMET_RDMA_MAX_MDTS 8 > +#define NVMET_RDMA_MAX_MD_MDTS 5 Can you spell out METADATA everywhere? > +#ifdef CONFIG_BLK_DEV_INTEGRITY > + /* Data Out / RDMA WRITE */ > + r->write_cqe.done = nvmet_rdma_write_data_done; > +#endif > return 0; > > out_free_rsp: > @@ -498,6 +507,138 @@ static void nvmet_rdma_process_wr_wait_list(struct nvmet_rdma_queue *queue) > spin_unlock(&queue->rsp_wr_wait_lock); > } > > +#ifdef CONFIG_BLK_DEV_INTEGRITY Any chance we could use IS_ENABLED() instead of all these ifdefs? > + /* > + * At the moment we hard code those, but in the future > + * we will take them from cmd. > + */ Same weird comment as on the host side. > + struct nvme_command *cmd = req->cmd; > + struct blk_integrity *bi = bdev_get_integrity(req->ns->bdev); > + u16 control = le16_to_cpu(cmd->rw.control); > + > + WARN_ON(bi == NULL); No need for this WARN_ON either I think. > + port->pi_capable = ndev->device->attrs.device_cap_flags & > + IB_DEVICE_INTEGRITY_HANDOVER ? true : false; No need for the ? :, but then again personally I'd prefer a good old: if (ndev->device->attrs.device_cap_flags & IB_DEVICE_INTEGRITY_HANDOVER) port->pi_capable = true; anyway.