Re: [PATCH v2 2/3] nvme/ioctl: don't call blk_mq_free_request() in nvme_map_user_request()

From: Caleb Sander Mateos
Date: Thu Mar 27 2025 - 22:48:51 EST


On Thu, Mar 27, 2025 at 3:42 AM Christoph Hellwig <hch@xxxxxx> wrote:
>
> On Fri, Mar 21, 2025 at 02:57:21PM -0600, Caleb Sander Mateos wrote:
> > ret = nvme_execute_rq(req, false);
> > if (result)
> > *result = le64_to_cpu(nvme_req(req)->result.u64);
> > if (bio)
> > blk_rq_unmap_user(bio);
> > - blk_mq_free_request(req);
> >
> > if (effects)
> > nvme_passthru_end(ctrl, ns, effects, cmd, ret);
> >
> > +out_free_req:
> > + blk_mq_free_request(req);
>
> We'll want the request freed before nvme_passthru_end here to avoid
> deadlocks with namespaces scanning.

Good point, I'll send out a v4.

Thanks,
Caleb