On Wed, Dec 29, 2021 at 06:41:09PM +0100, Christoph Hellwig wrote: > On Mon, Dec 27, 2021 at 08:41:37AM -0800, Keith Busch wrote: > > +/** > > + * rq_list_move() - move a struct request from one list to another > > + * @src: The source list @rq is currently in > > + * @dst: The destination list that @rq will be appended to > > + * @rq: The request to move > > + * @prv: The request preceding @rq in @src (NULL if @rq is the head) > > + * @nxt: The request following @rq in @src (NULL if @rq is the tail) > > + */ > > +static void inline rq_list_move(struct request **src, struct request **dst, > > + struct request *rq, struct request *prv, > > + struct request *nxt) > > +{ > > + if (prv) > > + prv->rq_next = nxt; > > + else > > + *src = nxt; > > + rq_list_add(dst, rq); > > +} > > Do we even need the nxt argument? I think it should always be > rq->rq_next? Sure. I only used it here because the safe iterator already has rq_next. It's not an optimization, so I'll remove it.