Message ID | 20240202073104.2418230-22-dlemoal@kernel.org |
---|---|
State | Superseded |
Headers | show |
Series | Zone write plugging | expand |
On 2/2/24 15:30, Damien Le Moal wrote: > Zone append operations are only allowed to target sequential write > required zones. blk_check_zone_append() uses bio_zone_is_seq() to check > this. However, this check is not necessary because: > 1) For NVMe ZNS namespace devices, only sequential write required zones > exist, making the zone type check useless. > 2) For null_blk, the driver will fail the request anyway, thus notifying > the user that a conventional zone was targeted. > 3) For all other zoned devices, zone append is now emulated using zone > write plugging, which checks that a zone append operation does not > target a conventional zone. > > In preparation for the removal of zone write locking and its > conventional zone bitmap (used by bio_zone_is_seq()), remove the > bio_zone_is_seq() call from blk_check_zone_append(). > > Signed-off-by: Damien Le Moal <dlemoal@kernel.org> > --- > block/blk-core.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > Reviewed-by: Hannes Reinecke <hare@suse.de> Cheers, Hannes
diff --git a/block/blk-core.c b/block/blk-core.c index 3945cfcc4d9b..bb4af8ddd8e7 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -577,8 +577,7 @@ static inline blk_status_t blk_check_zone_append(struct request_queue *q, return BLK_STS_NOTSUPP; /* The bio sector must point to the start of a sequential zone */ - if (!bdev_is_zone_start(bio->bi_bdev, bio->bi_iter.bi_sector) || - !bio_zone_is_seq(bio)) + if (!bdev_is_zone_start(bio->bi_bdev, bio->bi_iter.bi_sector)) return BLK_STS_IOERR; /*
Zone append operations are only allowed to target sequential write required zones. blk_check_zone_append() uses bio_zone_is_seq() to check this. However, this check is not necessary because: 1) For NVMe ZNS namespace devices, only sequential write required zones exist, making the zone type check useless. 2) For null_blk, the driver will fail the request anyway, thus notifying the user that a conventional zone was targeted. 3) For all other zoned devices, zone append is now emulated using zone write plugging, which checks that a zone append operation does not target a conventional zone. In preparation for the removal of zone write locking and its conventional zone bitmap (used by bio_zone_is_seq()), remove the bio_zone_is_seq() call from blk_check_zone_append(). Signed-off-by: Damien Le Moal <dlemoal@kernel.org> --- block/blk-core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)