aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/xd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block/xd.c')
-rw-r--r--drivers/block/xd.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/block/xd.c b/drivers/block/xd.c
index d4c4352354b5..ce2429219925 100644
--- a/drivers/block/xd.c
+++ b/drivers/block/xd.c
@@ -305,10 +305,7 @@ static void do_xd_request (struct request_queue * q)
305 if (xdc_busy) 305 if (xdc_busy)
306 return; 306 return;
307 307
308 req = elv_next_request(q); 308 req = blk_fetch_request(q);
309 if (req)
310 blkdev_dequeue_request(req);
311
312 while (req) { 309 while (req) {
313 unsigned block = blk_rq_pos(req); 310 unsigned block = blk_rq_pos(req);
314 unsigned count = blk_rq_cur_sectors(req); 311 unsigned count = blk_rq_cur_sectors(req);
@@ -325,11 +322,8 @@ static void do_xd_request (struct request_queue * q)
325 block, count); 322 block, count);
326 done: 323 done:
327 /* wrap up, 0 = success, -errno = fail */ 324 /* wrap up, 0 = success, -errno = fail */
328 if (!__blk_end_request_cur(req, res)) { 325 if (!__blk_end_request_cur(req, res))
329 req = elv_next_request(q); 326 req = blk_fetch_request(q);
330 if (req)
331 blkdev_dequeue_request(req);
332 }
333 } 327 }
334} 328}
335 329