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