On Tue, Mar 8, 2022 at 10:39 PM Keith Busch <kbusch@xxxxxxxxxx> wrote: > > On Tue, Mar 08, 2022 at 08:51:01PM +0530, Kanchan Joshi wrote: > > if (copy_from_user(&io, uio, sizeof(io))) > > return -EFAULT; > > - if (io.flags) > > - return -EINVAL; > > + if (io.flags & NVME_HIPRI) > > + rq_flags |= REQ_POLLED; > > I'm pretty sure we can repurpose this previously reserved field for this > kind of special handling without an issue now, but we should continue > returning EINVAL if any unknown flags are set. I have no idea what, if > any, new flags may be defined later, so we shouldn't let a future > application think an older driver honored something we are not handling. Would it be better if we don't try to pass NVME_HIPRI by any means (flags or rsvd1/rsvd2), and that means not enabling sync-polling and killing this patch. We have another flag "IO_URING_F_UCMD_POLLED" in ioucmd->flags, and we can use that instead to enable only the async polling. What do you think?