blk-mq: Micro-optimize bt_get()
Remove a superfluous finish_wait() call. Convert the two bt_wait_ptr() calls into a single call. Signed-off-by: Bart Van Assche <bvanassche@acm.org> Cc: Christoph Hellwig <hch@lst.de> Cc: Robert Elliott <elliott@hp.com> Cc: Ming Lei <ming.lei@canonical.com> Cc: Alexander Gordeev <agordeev@redhat.com> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
c38d185d4a
commit
52f7eb945f
|
@ -248,8 +248,8 @@ static int bt_get(struct blk_mq_alloc_data *data,
|
||||||
if (!(data->gfp & __GFP_WAIT))
|
if (!(data->gfp & __GFP_WAIT))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
bs = bt_wait_ptr(bt, hctx);
|
|
||||||
do {
|
do {
|
||||||
|
bs = bt_wait_ptr(bt, hctx);
|
||||||
prepare_to_wait(&bs->wait, &wait, TASK_UNINTERRUPTIBLE);
|
prepare_to_wait(&bs->wait, &wait, TASK_UNINTERRUPTIBLE);
|
||||||
|
|
||||||
tag = __bt_get(hctx, bt, last_tag);
|
tag = __bt_get(hctx, bt, last_tag);
|
||||||
|
@ -285,8 +285,6 @@ static int bt_get(struct blk_mq_alloc_data *data,
|
||||||
hctx = data->hctx;
|
hctx = data->hctx;
|
||||||
bt = &hctx->tags->bitmap_tags;
|
bt = &hctx->tags->bitmap_tags;
|
||||||
}
|
}
|
||||||
finish_wait(&bs->wait, &wait);
|
|
||||||
bs = bt_wait_ptr(bt, hctx);
|
|
||||||
} while (1);
|
} while (1);
|
||||||
|
|
||||||
finish_wait(&bs->wait, &wait);
|
finish_wait(&bs->wait, &wait);
|
||||||
|
|
Loading…
Reference in a new issue