block: make bio_check_eod work for zero sized devices
authorChristoph Hellwig <hch@lst.de>
Wed, 24 May 2023 06:05:38 +0000 (08:05 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 24 May 2023 14:19:26 +0000 (08:19 -0600)
commit3eb96946f0be6bf447cbdf219aba22bc42672f92
tree62af8350ff660f3174a665497a7c5c04d61438ab
parent46930b7cc7727271c9c27aac1fdc97a8645e2d00
block: make bio_check_eod work for zero sized devices

Since the dawn of time bio_check_eod has a check for a non-zero size of
the device.  This doesn't really make any sense as we never want to send
I/O to a device that's been set to zero size, or never moved out of that.

I am a bit surprised we haven't caught this for a long time, but the
removal of the extra validation inside of zram caused syzbot to trip
over this issue recently.  I've added a Fixes tag for that commit, but
the issue really goes back way before git history.

Fixes: 9fe95babc742 ("zram: remove valid_io_request")
Reported-by: syzbot+b8d61a58b7c7ebd2c8e0@syzkaller.appspotmail.com
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20230524060538.1593686-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-core.c