Re: [PATCH] blk-mq: fix the cmd_flag_name array

From: Jens Axboe
Date: Thu Jan 24 2019 - 11:34:23 EST


On 1/24/19 9:28 AM, Bart Van Assche wrote:
> On Thu, 2019-01-24 at 09:22 -0700, Jens Axboe wrote:
>> On 1/24/19 8:09 AM, Jeff Moyer wrote:
>>> Jianchao Wang <jianchao.w.wang@xxxxxxxxxx> writes:
>>>
>>>> Swap REQ_NOWAIT and REQ_NOUNMAP and add REQ_HIPRI.
>>>>
>>>> Signed-off-by: Jianchao Wang <jianchao.w.wang@xxxxxxxxxx>
>>>> ---
>>>> block/blk-mq-debugfs.c | 3 ++-
>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
>>>> index 90d6876..f812083 100644
>>>> --- a/block/blk-mq-debugfs.c
>>>> +++ b/block/blk-mq-debugfs.c
>>>> @@ -308,8 +308,9 @@ static const char *const cmd_flag_name[] = {
>>>> CMD_FLAG_NAME(PREFLUSH),
>>>> CMD_FLAG_NAME(RAHEAD),
>>>> CMD_FLAG_NAME(BACKGROUND),
>>>> - CMD_FLAG_NAME(NOUNMAP),
>>>> CMD_FLAG_NAME(NOWAIT),
>>>> + CMD_FLAG_NAME(NOUNMAP),
>>>> + CMD_FLAG_NAME(HIPRI),
>>>> };
>>>> #undef CMD_FLAG_NAME
>>>
>>> Acked-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
>>>
>>> You might consider also adding a comment above the req_flag_bits enum
>>> noting that modifications also need to be propagated to cmd_flag_name.
>>
>> Agree... These things are notoriously difficult to keep in sync, this
>> isn't the first time we've had a fixup. Not sure if that situation
>> is improvable, but at least a comment might help.
>
> How about making the build system derive the CMD_FLAG_NAME() declarations
> from the include/linux/blk* header files? It's not that hard to do that e.g.
> with the help of sed. The output of sed could be written into a .h file and
> that file could be #included from blk-mq-debugfs.c.

I'd be fine with that, if we already require sed for building other parts.
If it can't be handled with pre processor macros or similar.

--
Jens Axboe