[PATCH 4/6] nvme-mpath: support controller crd when failing over request

Sagi Grimberg sagi at grimberg.me
Mon Aug 24 07:23:59 PDT 2026


> > +	/* no CRD or timer allocation failed, fallback to immediate failover */
> > +	if (!fot) {
> > +		spin_lock_irqsave(&ns->head->requeue_lock, flags);
> > +		blk_steal_bios(&ns->head->requeue_list, req);
> > +		spin_unlock_irqrestore(&ns->head->requeue_lock, flags);
> > +		kblockd_schedule_work(&ns->head->requeue_work);
> > +	}
> 
> Yikes. Allocation during failover is not going to make you friends.

Well, it is a fairly rare event, and the fallback is exactly what we
do today...

> 
> And this whole mechanism looks pretty similar what we did over at
> implementing CCR. Can you use the mechanism from there?

How is this similar? It is effectively creating a container for
bio_list and timer to requeue them when the timer expires...
 



More information about the Linux-nvme mailing list