blktap: Dequeue requests before completion. The blk_end_request path won't dequeue implicitly any more. Signed-off-by: Daniel Stodden diff -r 666cc4c28bd7 -r 79d30c3f4345 drivers/xen/blktap/device.c --- a/drivers/xen/blktap/device.c Mon May 03 17:05:35 2010 -0700 +++ b/drivers/xen/blktap/device.c Wed May 05 15:03:39 2010 -0700 @@ -795,11 +795,13 @@ while ((req = blk_peek_request(rq)) != NULL) { if (!blk_fs_request(req)) { + blk_start_request(req); __blk_end_request_cur(req, 0); continue; } if (blk_barrier_rq(req)) { + blk_start_request(req); __blk_end_request_cur(req, 0); continue; } @@ -882,7 +884,7 @@ return; fail: - while ((req = blk_peek_request(rq))) { + while ((req = blk_fetch_request(rq))) { BTERR("device closed: failing secs %llu - %llu\n", (unsigned long long)blk_rq_pos(req), (unsigned long long)blk_rq_pos(req) + blk_rq_sectors(req));