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"); |