diff options
| author | Christoph Hellwig <hch@lst.de> | 2026-10-29 16:03:35 +0100 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2026-10-29 09:29:20 -0600 |
| commit | 0c10f8a1a7ae1502ea4ea7e13f222df89c28adf4 (patch) | |
| tree | 34704f641e555759d5afbb40f349d1b97feb76de | |
| parent | 134ffb0755626c91af82fc7debc8b6f75f1f777e (diff) | |
| download | linux-0c10f8a1a7ae1502ea4ea7e13f222df89c28adf4.tar.gz linux-0c10f8a1a7ae1502ea4ea7e13f222df89c28adf4.zip | |
zloop: check that the zone backing file support ->{read,write}_iter
I/O to backing files requires support for iter based read/write, so check
for that upfront instead of dereferencing a NULL pointer later.
Fixes: eb0570c7df23 ("block: new zoned loop block device driver")
Reported-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20261029150353.2503201-5-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
| -rw-r--r-- | drivers/block/zloop.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/block/zloop.c b/drivers/block/zloop.c index f0aca9d43851..65634a39b0bf 100644 --- a/drivers/block/zloop.c +++ b/drivers/block/zloop.c @@ -1132,6 +1132,11 @@ static int zloop_init_zone(struct zloop_device *zlo, struct zloop_options *opts, return PTR_ERR(zone->file); } + if (!zone->file->f_op->read_iter || !zone->file->f_op->write_iter) { + ret = -EINVAL; + goto out_fput; + } + if (zlo->block_size) { ret = zloop_get_block_size(zlo, zone); if (ret) |
