diff options
| author | Wenwei Tao <ww.tao0320@gmail.com> | 2016-07-07 03:54:07 -0400 |
|---|---|---|
| committer | Jens Axboe <axboe@fb.com> | 2016-07-07 10:51:52 -0400 |
| commit | 0de2415bb730ee26ce4c90778696d3559f4312c5 (patch) | |
| tree | ac387b41c21c9bad29f4f44de73e9f127c88e5c3 /drivers/lightnvm | |
| parent | f98d9ca17fbddd82980bc20abfabd5b405ecade4 (diff) | |
lightnvm: break the loop when rqd is not null
Break the loop when rqd is not null to reduce
an unnecessary schedule.
Signed-off-by: Wenwei Tao <ww.tao0320@gmail.com>
Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/lightnvm')
| -rw-r--r-- | drivers/lightnvm/rrpc.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c index de86d72dcdf0..736e66968bc6 100644 --- a/drivers/lightnvm/rrpc.c +++ b/drivers/lightnvm/rrpc.c | |||
| @@ -96,10 +96,13 @@ static void rrpc_discard(struct rrpc *rrpc, struct bio *bio) | |||
| 96 | sector_t len = bio->bi_iter.bi_size / RRPC_EXPOSED_PAGE_SIZE; | 96 | sector_t len = bio->bi_iter.bi_size / RRPC_EXPOSED_PAGE_SIZE; |
| 97 | struct nvm_rq *rqd; | 97 | struct nvm_rq *rqd; |
| 98 | 98 | ||
| 99 | do { | 99 | while (1) { |
| 100 | rqd = rrpc_inflight_laddr_acquire(rrpc, slba, len); | 100 | rqd = rrpc_inflight_laddr_acquire(rrpc, slba, len); |
| 101 | if (rqd) | ||
| 102 | break; | ||
| 103 | |||
| 101 | schedule(); | 104 | schedule(); |
| 102 | } while (!rqd); | 105 | } |
| 103 | 106 | ||
| 104 | if (IS_ERR(rqd)) { | 107 | if (IS_ERR(rqd)) { |
| 105 | pr_err("rrpc: unable to acquire inflight IO\n"); | 108 | pr_err("rrpc: unable to acquire inflight IO\n"); |
