]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/block/xd.c
Merge branch 'fix/asoc' into for-linus
[karo-tx-linux.git] / drivers / block / xd.c
index d4c4352354b559076002509e26422c1d63e6f973..ce2429219925597edddb597ed88c09ff37c48b75 100644 (file)
@@ -305,10 +305,7 @@ static void do_xd_request (struct request_queue * q)
        if (xdc_busy)
                return;
 
-       req = elv_next_request(q);
-       if (req)
-               blkdev_dequeue_request(req);
-
+       req = blk_fetch_request(q);
        while (req) {
                unsigned block = blk_rq_pos(req);
                unsigned count = blk_rq_cur_sectors(req);
@@ -325,11 +322,8 @@ static void do_xd_request (struct request_queue * q)
                                           block, count);
        done:
                /* wrap up, 0 = success, -errno = fail */
-               if (!__blk_end_request_cur(req, res)) {
-                       req = elv_next_request(q);
-                       if (req)
-                               blkdev_dequeue_request(req);
-               }
+               if (!__blk_end_request_cur(req, res))
+                       req = blk_fetch_request(q);
        }
 }