On 9/29/22 16:47, Pankaj Raghav wrote: > Use blk_mq_plug() wrapper to get the plug instead of directly accessing > it in the block layer. > > Either of the changes should not have led to a bug in zoned devices: > > - blk_execute_rq_nowait: > Only passthrough requests can use this function, and plugging can be > performed on those requests in zoned devices. So no issues directly > accessing the plug. > > - blk_flush_plug in bio_poll: > As we don't plug the requests that require a zone lock in the first > place, flushing should not have any impact. So no issues directly > accessing the plug. > > This is just a cleanup patch to use this wrapper to get the plug > consistently across the block layer. > > Signed-off-by: Pankaj Raghav <p.raghav@xxxxxxxxxxx> Reviewed-by: Damien Le Moal <damien.lemoal@xxxxxxxxxxxxxxxxxx> > --- > block/blk-core.c | 2 +- > block/blk-mq.c | 6 ++++-- > 2 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/block/blk-core.c b/block/blk-core.c > index 203be672da52..d0e97de216db 100644 > --- a/block/blk-core.c > +++ b/block/blk-core.c > @@ -850,7 +850,7 @@ int bio_poll(struct bio *bio, struct io_comp_batch *iob, unsigned int flags) > !test_bit(QUEUE_FLAG_POLL, &q->queue_flags)) > return 0; > > - blk_flush_plug(current->plug, false); > + blk_flush_plug(blk_mq_plug(bio), false); > > if (bio_queue_enter(bio)) > return 0; > diff --git a/block/blk-mq.c b/block/blk-mq.c > index c11949d66163..5bf245c4bf0a 100644 > --- a/block/blk-mq.c > +++ b/block/blk-mq.c > @@ -1209,12 +1209,14 @@ static void blk_add_rq_to_plug(struct blk_plug *plug, struct request *rq) > */ > void blk_execute_rq_nowait(struct request *rq, bool at_head) > { > + struct blk_plug *plug = blk_mq_plug(rq->bio); > + > WARN_ON(irqs_disabled()); > WARN_ON(!blk_rq_is_passthrough(rq)); > > blk_account_io_start(rq); > - if (current->plug) > - blk_add_rq_to_plug(current->plug, rq); > + if (plug) > + blk_add_rq_to_plug(plug, rq); > else > blk_mq_sched_insert_request(rq, at_head, true, false); > } -- Damien Le Moal Western Digital Research