On Wed, Jul 15, 2020 at 01:33:29PM -0700, Eric Sandeen wrote: > On 7/15/20 1:12 PM, Bill O'Donnell wrote: > > Since grace periods are now supported for three quota types (ugp), > > modify xfs_quota state command to report times for all three. > > Add a helper function for stat reporting. > > > > Signed-off-by: Bill O'Donnell <billodo@xxxxxxxxxx> > > ... > > > + if (type & XFS_GROUP_QUOTA) { > > + if (xfsquotactl(XFS_GETQSTATV, dev, XFS_GROUP_QUOTA, > > + 0, (void *)&sv) < 0) { > > + if (xfsquotactl(XFS_GETQSTAT, dev, XFS_GROUP_QUOTA, > > + 0, (void *)&s) < 0) { > > + if (flags & VERBOSE_FLAG) > > + fprintf(fp, > > + _("%s quota are not enabled on %s\n"), > > + type_to_string(XFS_GROUP_QUOTA), > > + dev); > > + return; > > + } > > + state_stat_to_statv(&s, &sv); > > + } > > At first glance, can't all of the above be moved into the helper as well? > > Maybe something like this (needs fixing up for sure) Yeah, I should further reduce the redundancy. Thanks- Bill > > static void > state_quotafile_stat( > FILE *fp, > uint type, > struct fs_path *mount, > struct fs_quota_statv *sv) > { > bool accounting, enforcing; > struct fs_qfilestat *qsv; > > switch(type) { > case XFS_USER_QUOTA: > qsv = &sv->qs_uquota; > accounting = sv->qs_flags & XFS_QUOTA_UDQ_ACCT; > enforcing = sv->qs_flags & XFS_QUOTA_UDQ_ENFD; > break; > case XFS_GROUP_QUOTA: > ... > break; > ... > default: > /* defensive check goes here */ > } > > if (xfsquotactl(XFS_GETQSTATV, dev, type, 0, (void *)&sv) < 0) { > if (xfsquotactl(XFS_GETQSTAT, dev, type, 0, (void *)&s) < 0) { > if (flags & VERBOSE_FLAG) > fprintf(fp, > _("%s quota are not enabled on %s\n"), > type_to_string(type), dev); > return; > } > state_stat_to_statv(&s, &sv) > } > > state_qfilestat(fp, mount, type, qsv, accounting, enforcing); > > state_timelimit(fp, XFS_BLOCK_QUOTA, sv->qs_btimelimit); > state_warnlimit(fp, XFS_BLOCK_QUOTA, sv->qs_bwarnlimit); > > state_timelimit(fp, XFS_INODE_QUOTA, sv->qs_itimelimit); > state_warnlimit(fp, XFS_INODE_QUOTA, sv->qs_iwarnlimit); > > state_timelimit(fp, XFS_RTBLOCK_QUOTA, sv->qs_rtbtimelimit); > } > > > Thanks, > -Eric >