On Thu, Nov 30, 2017 at 05:04:36PM -0600, Eric Sandeen wrote: > And catch it at build time if we get out of sync again. > > Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> Looks ok, Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> /me wondered if we should just turn it into this, given that the error tags are sequentially increasing: static char *eflags[] = { [XFS_ERRTAG_NOERROR] = "noerror", [XFS_ERRTAG_IFLUSH_1] = "iflush1", }; BUILD_BUG_ON(sizeof(eflags) == sizeof(char *) * XFS_ERRTAG_MAX); and so on, but that can be another patch. --D > --- > > V2: add BUILD_BUG_ON > V3: dynamically size the array > > (I tested w/ dynamically sized but lost it in the V2 patch) > > diff --git a/include/xfs.h b/include/xfs.h > index 9f0f11b..a40ca0c 100644 > --- a/include/xfs.h > +++ b/include/xfs.h > @@ -64,6 +64,10 @@ extern int xfs_assert_largefile[sizeof(off_t)-8]; > #define __packed __attribute__((packed)) > #endif > > +#ifndef BUILD_BUG_ON > +#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) > +#endif > + > #include <xfs/xfs_types.h> > #include <xfs/xfs_fs.h> > > diff --git a/io/inject.c b/io/inject.c > index 9d0cf62..fc3cf25 100644 > --- a/io/inject.c > +++ b/io/inject.c > @@ -30,7 +30,7 @@ error_tag(char *name) > static struct { > int tag; > char *name; > - } *e, eflags[XFS_ERRTAG_MAX + 1] = { > + } *e, eflags[] = { > { XFS_ERRTAG_NOERROR, "noerror" }, > { XFS_ERRTAG_IFLUSH_1, "iflush1" }, > { XFS_ERRTAG_IFLUSH_2, "iflush2" }, > @@ -62,10 +62,14 @@ error_tag(char *name) > { XFS_ERRTAG_DROP_WRITES, "drop_writes" }, > { XFS_ERRTAG_LOG_BAD_CRC, "log_bad_crc" }, > { XFS_ERRTAG_LOG_ITEM_PIN, "log_item_pin" }, > + { XFS_ERRTAG_BUF_LRU_REF, "buf_lru_ref" }, > { XFS_ERRTAG_MAX, NULL } > }; > int count; > > + /* If this fails make sure every tag is defined in the array above */ > + BUILD_BUG_ON(sizeof(eflags) != (XFS_ERRTAG_MAX + 1) * sizeof(*e)); > + > /* Search for a name */ > if (name) { > for (e = eflags; e->name; e++) > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html