OSDN Git Service

lightnvm: break the loop when rqd is not null
authorWenwei Tao <ww.tao0320@gmail.com>
Thu, 7 Jul 2016 07:54:07 +0000 (09:54 +0200)
committerJens Axboe <axboe@fb.com>
Thu, 7 Jul 2016 14:51:52 +0000 (08:51 -0600)
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>
drivers/lightnvm/rrpc.c

index de86d72..736e669 100644 (file)
@@ -96,10 +96,13 @@ static void rrpc_discard(struct rrpc *rrpc, struct bio *bio)
        sector_t len = bio->bi_iter.bi_size / RRPC_EXPOSED_PAGE_SIZE;
        struct nvm_rq *rqd;
 
-       do {
+       while (1) {
                rqd = rrpc_inflight_laddr_acquire(rrpc, slba, len);
+               if (rqd)
+                       break;
+
                schedule();
-       } while (!rqd);
+       }
 
        if (IS_ERR(rqd)) {
                pr_err("rrpc: unable to acquire inflight IO\n");