|
@@ -1001,13 +1001,7 @@ static int dispatch_rw_block_io(struct xen_blkif *blkif,
|
|
|
bio->bi_end_io = end_block_io_op;
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- * We set it one so that the last submit_bio does not have to call
|
|
|
- * atomic_inc.
|
|
|
- */
|
|
|
atomic_set(&pending_req->pendcnt, nbio);
|
|
|
-
|
|
|
- /* Get a reference count for the disk queue and start sending I/O */
|
|
|
blk_start_plug(&plug);
|
|
|
|
|
|
for (i = 0; i < nbio; i++)
|
|
@@ -1035,6 +1029,7 @@ static int dispatch_rw_block_io(struct xen_blkif *blkif,
|
|
|
fail_put_bio:
|
|
|
for (i = 0; i < nbio; i++)
|
|
|
bio_put(biolist[i]);
|
|
|
+ atomic_set(&pending_req->pendcnt, 1);
|
|
|
__end_block_io_op(pending_req, -EINVAL);
|
|
|
msleep(1); /* back off a bit */
|
|
|
return -EIO;
|