On 2019-10-22 10:41, André Almeida wrote: > The only usage of the label "done" is when (rq->tag != -1) at the > begging of the function. Rather than jumping to label, we can just > remove this label and execute the code at the "if". Besides that, > the code that would be executed after the label "done" is the return of > the logical expression (rq->tag != -1) but since we are already inside > the if, we now that this is true. Remove the label and replace the goto > with the proper result of the label. > > Signed-off-by: André Almeida <andrealmeid@xxxxxxxxxxxxx> > --- > Hello, > > I've used `blktest` to check if this change add any regression. I have > used `./check block` and I got the same results with and without this > patch (a bunch of "passed" and three "not run" because of the virtual > scsi capabilities). Please let me know if there would be a better way to > test changes at block stack. > > This commit was rebase at linux-block/for-5.5/block. > > Thanks, > André > --- > block/blk-mq.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/block/blk-mq.c b/block/blk-mq.c > index 8538dc415499..1e067b78ab97 100644 > --- a/block/blk-mq.c > +++ b/block/blk-mq.c > @@ -1036,7 +1036,7 @@ bool blk_mq_get_driver_tag(struct request *rq) > bool shared; > > if (rq->tag != -1) > - goto done; > + return true; > > if (blk_mq_tag_is_reserved(data.hctx->sched_tags, rq->internal_tag)) > data.flags |= BLK_MQ_REQ_RESERVED; > @@ -1051,7 +1051,6 @@ bool blk_mq_get_driver_tag(struct request *rq) > data.hctx->tags->rqs[rq->tag] = rq; > } > > -done: > return rq->tag != -1; > } Do we really need code changes like the above? I'm not aware of any text in the Documentation/ directory that forbids the use of goto statements. Thanks, Bart.