Re: [PATCH 05/11] block: add a store_limit operations for sysfs entries
- To: John Garry <john.g.garry@oracle.com>, Christoph Hellwig <hch@lst.de>, Jens Axboe <axboe@kernel.dk>
- Cc: Ming Lei <ming.lei@redhat.com>, Nilay Shroff <nilay@linux.ibm.com>, linux-block@vger.kernel.org, linux-nvme@lists.infradead.org, nbd@other.debian.org, linux-scsi@vger.kernel.org, usb-storage@lists.one-eyed-alien.net, "Martin K . Petersen" <martin.petersen@oracle.com>, Johannes Thumshirn <johannes.thumshirn@wdc.com>
- Subject: Re: [PATCH 05/11] block: add a store_limit operations for sysfs entries
- From: Damien Le Moal <dlemoal@kernel.org>
- Date: Fri, 10 Jan 2025 18:57:48 +0900
- Message-id: <[🔎] d7db7620-1f2e-4216-8929-2cfd4d847447@kernel.org>
- In-reply-to: <[🔎] 79d85a4e-57c3-454e-a65b-d2a3764eaf0c@oracle.com>
- References: <[🔎] 20250110054726.1499538-1-hch@lst.de> <[🔎] 20250110054726.1499538-6-hch@lst.de> <[🔎] 79d85a4e-57c3-454e-a65b-d2a3764eaf0c@oracle.com>
On 2025/01/10 18:56, John Garry wrote:
> On 10/01/2025 05:47, Christoph Hellwig wrote:
>> -static ssize_t queue_iostats_passthrough_store(struct gendisk *disk,
>> - const char *page, size_t count)
>> +static int queue_iostats_passthrough_store(struct gendisk *disk,
>> + const char *page, size_t count, struct queue_limits *lim)
>> {
>> - struct queue_limits lim;
>> unsigned long ios;
>> ssize_t ret;
>>
>> @@ -284,18 +269,13 @@ static ssize_t queue_iostats_passthrough_store(struct gendisk *disk,
>> if (ret < 0)
>> return ret;
>>
>> - lim = queue_limits_start_update(disk->queue);
>> if (ios)
>> - lim.flags |= BLK_FLAG_IOSTATS_PASSTHROUGH;
>> + lim->flags |= BLK_FLAG_IOSTATS_PASSTHROUGH;
>> else
>> - lim.flags &= ~BLK_FLAG_IOSTATS_PASSTHROUGH;
>> -
>> - ret = queue_limits_commit_update(disk->queue, &lim);
>> - if (ret)
>> - return ret;
>> -
>> - return count;
>> + lim->flags &= ~BLK_FLAG_IOSTATS_PASSTHROUGH;
>> + return 0;
>> }
>
> BTW, this function seems to duplicate queue_feature_store(), no?
>
> I mean, why not:
>
> static int queue_iostats_passthrough_store(struct gendisk *disk,
> const char *page, size_t count, struct queue_limits *lim)
> {
> return queue_feature_store(disk, page, count, lim,
> BLK_FLAG_IOSTATS_PASSTHROUGH);
> }
>
> I think that there is even a macro for this.
Another cleanup to add to the pile I guess :)
--
Damien Le Moal
Western Digital Research
Reply to: