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

Bart Van Assche
2019-01-24T16:28:38Z

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@oracle.com> writes:
> >
> > > Swap REQ_NOWAIT and REQ_NOUNMAP and add REQ_HIPRI.
> > >
> > > Signed-off-by: Jianchao Wang <jianchao.w.wang@oracle.com>
> > > ---
> > > 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@redhat.com>
> >
> > 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.

Bart.