[PATCH 3/7] nvmet: allow async passthrough of commands that change logical block contents
Christoph Hellwig
hch at lst.de
Tue Dec 13 23:59:37 PST 2022
On Wed, Dec 14, 2022 at 04:52:47AM +0000, Chaitanya Kulkarni wrote:
> > - effects = nvme_command_effects(ctrl, ns, req->cmd->common.opcode);
> > - if (req->p.use_workqueue || effects) {
> > + if (nvme_command_effects(ctrl, ns, req->cmd->common.opcode) &
> > + ~NVME_CMD_EFFECTS_LBCC)
> > + req->p.use_workqueue = true;
> > +
>
> How about this instead of calling function in if which is much cleaner
> unless it has a bug ?
>
> effect = nvme_command_effects(ctrl, ns, req->cmd->common.opcode);
>
> req->p.use_workqueue = effetcs & ~NVME_CMD_EFFECTS_LBCC;
This would clear the bit if it is already set. The being said
I'm not a fan of how the use_workqueue flag is set, and I now have
an idea on how to remove it entirely.
More information about the Linux-nvme
mailing list