Commit 95d44038 authored by Muthukumar Ratty's avatar Muthukumar Ratty Committed by Jens Axboe

block: Warn and free bio if bi_end_io is not set

In bio_endio if bio doesn't have bi_end_io (should be an error case),
we set bio to NULL and continue silently without freeing the bio. It
would be good to have a WARN and free the bio to avoid memory leak.
Signed-off-by: default avatarMuthukumar Ratty <muthur@gmail.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 0fec08b4
......@@ -1770,6 +1770,15 @@ void bio_endio(struct bio *bio, int error)
} else {
if (bio->bi_end_io)
bio->bi_end_io(bio, error);
else {
char dev_name[BDEVNAME_SIZE];
WARN(1, "bio_endio: bio for %s without endio\n",
bio->bi_bdev ? bdevname(bio->bi_bdev,
dev_name) : "(unknown)");
bio_put(bio);
}
bio = NULL;
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment