Re: [PATCH 02/26] sd: move zone limits setup out of sd_read_block_characteristics
- To: Christoph Hellwig <hch@lst.de>
- Cc: Jens Axboe <axboe@kernel.dk>, Geert Uytterhoeven <geert@linux-m68k.org>, Richard Weinberger <richard@nod.at>, Philipp Reisner <philipp.reisner@linbit.com>, Lars Ellenberg <lars.ellenberg@linbit.com>, Christoph B??hmwalder <christoph.boehmwalder@linbit.com>, Josef Bacik <josef@toxicpanda.com>, Ming Lei <ming.lei@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, Roger Pau Monn?? <roger.pau@citrix.com>, Alasdair Kergon <agk@redhat.com>, Mike Snitzer <snitzer@kernel.org>, Mikulas Patocka <mpatocka@redhat.com>, Song Liu <song@kernel.org>, Yu Kuai <yukuai3@huawei.com>, Vineeth Vijayan <vneethv@linux.ibm.com>, "Martin K. Petersen" <martin.petersen@oracle.com>, linux-m68k@lists.linux-m68k.org, linux-um@lists.infradead.org, drbd-dev@lists.linbit.com, nbd@other.debian.org, linuxppc-dev@lists.ozlabs.org, ceph-devel@vger.kernel.org, virtualization@lists.linux.dev, xen-devel@lists.xenproject.org, linux-bcache@vger.kernel.org, dm-devel@lists.linux.dev, linux-raid@vger.kernel.org, linux-mmc@vger.kernel.org, linux-mtd@lists.infradead.org, nvdimm@lists.linux.dev, linux-nvme@lists.infradead.org, linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org, linux-block@vger.kernel.org
- Subject: Re: [PATCH 02/26] sd: move zone limits setup out of sd_read_block_characteristics
- From: Damien Le Moal <dlemoal@kernel.org>
- Date: Tue, 11 Jun 2024 16:25:18 +0900
- Message-id: <[🔎] 92df5033-5df7-4b2a-98ad-a27f8443ee6a@kernel.org>
- In-reply-to: <[🔎] 20240611055405.GA3256@lst.de>
- References: <[🔎] 20240611051929.513387-1-hch@lst.de> <[🔎] 20240611051929.513387-3-hch@lst.de> <[🔎] 40ca8052-6ac1-4c1b-8c39-b0a7948839f8@kernel.org> <[🔎] 20240611055239.GA3141@lst.de> <[🔎] 20240611055405.GA3256@lst.de>
On 6/11/24 2:54 PM, Christoph Hellwig wrote:
> On Tue, Jun 11, 2024 at 07:52:39AM +0200, Christoph Hellwig wrote:
>>> Maybe we should clear the other zone related limits here ? If the drive is
>>> reformatted/converted from SMR to CMR (FORMAT WITH PRESET), the other zone
>>> limits may be set already, no ?
>>
>> blk_validate_zoned_limits already takes care of that.
>
> Sorry, brainfart. The integrity code does that, but not the zoned
> code. I suspect the core code might be a better place for it,
> though.
Yes. Just replied to your previous email before seeing this one.
I think that:
static int blk_validate_zoned_limits(struct queue_limits *lim)
{
if (!lim->zoned) {
if (WARN_ON_ONCE(lim->max_open_zones) ||
WARN_ON_ONCE(lim->max_active_zones) ||
WARN_ON_ONCE(lim->zone_write_granularity) ||
WARN_ON_ONCE(lim->max_zone_append_sectors))
return -EINVAL;
return 0;
}
...
could be changed into:
static int blk_validate_zoned_limits(struct queue_limits *lim)
{
if (!lim->zoned) {
lim->max_open_zones = 0;
lim->max_active_zones = 0;
lim->zone_write_granularity = 0;
lim->max_zone_append_sectors = 0
return 0;
}
But then we would not see "bad" drivers. Could have a small
blk_clear_zoned_limits(struct queue_limits *lim)
helper too.
--
Damien Le Moal
Western Digital Research
Reply to: