xen-blkback: bio_alloc can't fail if it is allow to sleep
Remove handling of NULL returns from sleeping bio_alloc calls given that those can't fail. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20220124091107.642561-13-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
d7b78de2b1
commit
7d8d0c658d
@@ -1327,9 +1327,6 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
|
|||||||
seg[i].nsec << 9,
|
seg[i].nsec << 9,
|
||||||
seg[i].offset) == 0)) {
|
seg[i].offset) == 0)) {
|
||||||
bio = bio_alloc(GFP_KERNEL, bio_max_segs(nseg - i));
|
bio = bio_alloc(GFP_KERNEL, bio_max_segs(nseg - i));
|
||||||
if (unlikely(bio == NULL))
|
|
||||||
goto fail_put_bio;
|
|
||||||
|
|
||||||
biolist[nbio++] = bio;
|
biolist[nbio++] = bio;
|
||||||
bio_set_dev(bio, preq.bdev);
|
bio_set_dev(bio, preq.bdev);
|
||||||
bio->bi_private = pending_req;
|
bio->bi_private = pending_req;
|
||||||
@@ -1346,9 +1343,6 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
|
|||||||
BUG_ON(operation_flags != REQ_PREFLUSH);
|
BUG_ON(operation_flags != REQ_PREFLUSH);
|
||||||
|
|
||||||
bio = bio_alloc(GFP_KERNEL, 0);
|
bio = bio_alloc(GFP_KERNEL, 0);
|
||||||
if (unlikely(bio == NULL))
|
|
||||||
goto fail_put_bio;
|
|
||||||
|
|
||||||
biolist[nbio++] = bio;
|
biolist[nbio++] = bio;
|
||||||
bio_set_dev(bio, preq.bdev);
|
bio_set_dev(bio, preq.bdev);
|
||||||
bio->bi_private = pending_req;
|
bio->bi_private = pending_req;
|
||||||
@@ -1381,14 +1375,6 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
|
|||||||
free_req(ring, pending_req);
|
free_req(ring, pending_req);
|
||||||
msleep(1); /* back off a bit */
|
msleep(1); /* back off a bit */
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
|
||||||
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, BLK_STS_RESOURCE);
|
|
||||||
msleep(1); /* back off a bit */
|
|
||||||
return -EIO;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user