diff options
| author | Shao Mingyin <shao.mingyin@zte.com.cn> | 2026-10-31 22:16:10 +0800 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2026-11-03 07:10:16 -0700 |
| commit | 09c2e203e0ea8b68e7c9500401fa0ab60baf1a9d (patch) | |
| tree | c96b42f92a3969d1be7b55e928c0cca88bca8592 /scripts/livepatch/init.c | |
| parent | 603523fd54664f17630f742229166278568c3ce8 (diff) | |
zloop: reject mismatched conventional zone files on restore
When restoring a zloop device, zloop_init_zone() checks that the size of
each conventional zone file matches the configured zone size. The check
prints an error and then jumps to out_fput, which releases the zone file
and returns the value left in "ret" by the preceding vfs_getattr() call,
that is, zero. zloop_ctl_add() therefore treats the zone as initialized
and continues with a zone->file pointer that was already released; any
I/O to that zone then dereferences it.
Return -EINVAL, like the sequential zone path does for the same kind of
inconsistency.
While at it, print the zone size that is actually compared instead of the
zone capacity, which may be smaller and only made the message confusing.
Fixes: eb0570c7df23 ("block: new zoned loop block device driver")
Signed-off-by: Shao Mingyin <shao.mingyin@zte.com.cn>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://patch.msgid.link/20261031221610676B5VoVcwMgkoDNVZH2bVDO@zte.com.cn
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'scripts/livepatch/init.c')
0 files changed, 0 insertions, 0 deletions
