From: Damien Le Moal <dlemoal@kernel.org>
To: Shashank Mohan Jain <jain.sm@gmail.com>, Jens Axboe <axboe@kernel.dk>
Cc: Christoph Hellwig <hch@lst.de>,
Johannes Thumshirn <johannes.thumshirn@wdc.com>,
Hannes Reinecke <hare@suse.de>,
Chaitanya Kulkarni <kch@nvidia.com>,
"Martin K. Petersen" <mkp@kernel.org>,
linux-block@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] block: fix the length of a smaller last zone in blkdev_get_zone_info()
Date: Sun, 11 Oct 2026 16:47:23 +0200 [thread overview]
Message-ID: <83cfc6c0-b76d-448c-8f9c-3ef5091bdd22@kernel.org> (raw)
In-Reply-To: <20261011051906.60397-3-jain.sm@gmail.com>
On 2026/10/11 7:19, Shashank Mohan Jain wrote:
> blkdev_get_zone_info() sets the length of every zone to the zone size
> of the device. The last zone of a zoned block device may be smaller
> than the others: blk_revalidate_zone_cb() accepts that and remembers
> the capacity of that zone in disk->last_zone_capacity. For such a zone
> the length reported from the cached information is too large, and
> start + len is beyond the end of the device. A conventional last zone
> is also given the capacity of a full zone.
>
> Example with a zoned null_blk device of 10 MiB (20480 sectors) with
> 4 MiB zones, last zone:
>
> BLKREPORTZONE: start 16384 len 4096 capacity 4096
> BLKREPORTZONEV2 with
> BLK_ZONE_REP_CACHED: start 16384 len 8192 capacity 4096
>
> Limit the length to what is left of the device. disk_zone_is_last()
> still recognises the last zone, as start + len is then equal to the
> capacity of the device. The capacity of a conventional zone is equal
> to its length, which blk_revalidate_conv_zone() checks, so use the
> length there.
>
> Tested with zoned null_blk devices in qemu (all zones sequential, and
> two conventional zones followed by sequential ones, both with a smaller
> last zone): the start, length and capacity of all zones in the cached
> report are the same as in the report from the device with this change.
> null_blk cannot create a device with a conventional last zone, so that
> case is not tested.
>
> Fixes: f2284eec5053 ("block: introduce blkdev_get_zone_info()")
> Cc: stable@vger.kernel.org
> Assisted-by: LLM
> Signed-off-by: Shashank Mohan Jain <jain.sm@gmail.com>
Doh! Good catch.
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
--
Damien Le Moal
Western Digital Research
next prev parent reply other threads:[~2026-10-11 14:47 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-11 5:19 [PATCH 0/2] block: two fixes for the zone report ioctls Shashank Mohan Jain
2026-10-11 5:19 ` [PATCH 1/2] block: only use the cached zone report if BLK_ZONE_REP_CACHED is set Shashank Mohan Jain
2026-10-11 14:46 ` Damien Le Moal
2026-10-11 15:44 ` shashank Jain
2026-10-12 4:58 ` Shashank Mohan Jain
2026-10-11 5:19 ` [PATCH 2/2] block: fix the length of a smaller last zone in blkdev_get_zone_info() Shashank Mohan Jain
2026-10-11 14:47 ` Damien Le Moal [this message]
2026-10-12 12:21 ` Christoph Hellwig
2026-10-12 12:29 ` shashank Jain
2026-10-12 12:37 ` Damien Le Moal
2026-10-12 12:41 ` shashank Jain
2026-10-12 12:45 ` Damien Le Moal
2026-10-12 12:53 ` shashank Jain
2026-10-12 13:04 ` Damien Le Moal
2026-10-12 13:08 ` shashank Jain
2026-10-12 12:46 ` Damien Le Moal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=83cfc6c0-b76d-448c-8f9c-3ef5091bdd22@kernel.org \
--to=dlemoal@kernel.org \
--cc=axboe@kernel.dk \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=jain.sm@gmail.com \
--cc=johannes.thumshirn@wdc.com \
--cc=kch@nvidia.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mkp@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.