On Tue, Mar 16, 2021 at 07:31:26PM +0530, Kanchan Joshi wrote: > @@ -1179,6 +1278,20 @@ static int nvme_submit_user_cmd(struct request_queue *q, > req->cmd_flags |= REQ_INTEGRITY; > } > } > + if (ioucmd) { /* async handling */ > + u32 effects; > + > + effects = nvme_command_effects(ns->ctrl, ns, cmd->common.opcode); > + /* filter commands with non-zero effects, keep it simple for now*/ You shouldn't need to be concerned with this. You've wired up the ioucmd only to the NVME_IOCTL_IO_CMD, and nvme_command_effects() can only return 0 for that. It would be worth adding support for NVME_IOCTL_IO_CMD64 too, though, and that doesn't change the effects handling either. > + if (effects) { > + ret = -EOPNOTSUPP; > + goto out_unmap; > + } > + nvme_setup_uring_cmd_data(req, ioucmd, meta, write); > + blk_execute_rq_nowait(ns ? ns->disk : NULL, req, 0, > + nvme_end_async_pt); > + return 0; > + }