mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-11 21:14:07 +08:00
drbd: 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-10-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
28d7d128aa
commit
4b1dc86d18
@ -1281,14 +1281,13 @@ static void submit_one_flush(struct drbd_device *device, struct issue_flush_cont
|
||||
{
|
||||
struct bio *bio = bio_alloc(GFP_NOIO, 0);
|
||||
struct one_flush_context *octx = kmalloc(sizeof(*octx), GFP_NOIO);
|
||||
if (!bio || !octx) {
|
||||
drbd_warn(device, "Could not allocate a bio, CANNOT ISSUE FLUSH\n");
|
||||
|
||||
if (!octx) {
|
||||
drbd_warn(device, "Could not allocate a octx, CANNOT ISSUE FLUSH\n");
|
||||
/* FIXME: what else can I do now? disconnecting or detaching
|
||||
* really does not help to improve the state of the world, either.
|
||||
*/
|
||||
kfree(octx);
|
||||
if (bio)
|
||||
bio_put(bio);
|
||||
bio_put(bio);
|
||||
|
||||
ctx->error = -ENOMEM;
|
||||
put_ldev(device);
|
||||
@ -1646,7 +1645,6 @@ int drbd_submit_peer_request(struct drbd_device *device,
|
||||
unsigned data_size = peer_req->i.size;
|
||||
unsigned n_bios = 0;
|
||||
unsigned nr_pages = (data_size + PAGE_SIZE -1) >> PAGE_SHIFT;
|
||||
int err = -ENOMEM;
|
||||
|
||||
/* TRIM/DISCARD: for now, always use the helper function
|
||||
* blkdev_issue_zeroout(..., discard=true).
|
||||
@ -1688,10 +1686,6 @@ int drbd_submit_peer_request(struct drbd_device *device,
|
||||
*/
|
||||
next_bio:
|
||||
bio = bio_alloc(GFP_NOIO, nr_pages);
|
||||
if (!bio) {
|
||||
drbd_err(device, "submit_ee: Allocation of a bio failed (nr_pages=%u)\n", nr_pages);
|
||||
goto fail;
|
||||
}
|
||||
/* > peer_req->i.sector, unless this is the first bio */
|
||||
bio->bi_iter.bi_sector = sector;
|
||||
bio_set_dev(bio, device->ldev->backing_bdev);
|
||||
@ -1726,14 +1720,6 @@ next_bio:
|
||||
drbd_submit_bio_noacct(device, fault_type, bio);
|
||||
} while (bios);
|
||||
return 0;
|
||||
|
||||
fail:
|
||||
while (bios) {
|
||||
bio = bios;
|
||||
bios = bios->bi_next;
|
||||
bio_put(bio);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
static void drbd_remove_epoch_entry_interval(struct drbd_device *device,
|
||||
|
Loading…
Reference in New Issue
Block a user