Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

zloop: fail zone append operations that are targeting full zones

zloop_rw() will fail any regular write operation that targets a full
sequential zone. The check for this is indirect and achieved by checking
the write pointer alignment of the write operation. But this check is
ineffective for zone append operations since these are alwasy
automatically directed at a zone write pointer.

Prevent zone append operations from being executed in a full zone with
an explicit check of the zone condition.

Fixes: eb0570c7df23 ("block: new zoned loop block device driver")
Cc: stable@vger.kernel.org
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Damien Le Moal and committed by
Jens Axboe
cf28f6f9 866d6574

+4
+4
drivers/block/zloop.c
··· 407 407 mutex_lock(&zone->lock); 408 408 409 409 if (is_append) { 410 + if (zone->cond == BLK_ZONE_COND_FULL) { 411 + ret = -EIO; 412 + goto unlock; 413 + } 410 414 sector = zone->wp; 411 415 cmd->sector = sector; 412 416 }