Whamcloud - gitweb
LU-4017 e2fsprogs: clean up codes for adding new quota type
[tools/e2fsprogs.git] / lib / e2p / ls.c
index 6f741c0..0df3622 100644 (file)
@@ -23,6 +23,7 @@
 #include <time.h>
 
 #include "e2p.h"
+#include "quota/quotaio.h"
 
 static void print_user (unsigned short uid, FILE *f)
 {
@@ -196,11 +197,25 @@ static __u64 e2p_free_blocks_count(struct ext2_super_block *super)
 #define EXT2_GOOD_OLD_REV 0
 #endif
 
+static const char *quota_prefix[MAXQUOTAS] = {
+       [USRQUOTA] = "User quota inode:",
+       [GRPQUOTA] = "Group quota inode:",
+};
+
+/**
+ * Convert type of quota to written representation
+ */
+static const char *quota_type2prefix(enum quota_type qtype)
+{
+       return quota_prefix[qtype];
+}
+
 void list_super2(struct ext2_super_block * sb, FILE *f)
 {
        int inode_blocks_per_group;
        char buf[80], *str;
        time_t  tm;
+       enum quota_type qtype;
 
        inode_blocks_per_group = (((sb->s_inodes_per_group *
                                    EXT2_INODE_SIZE(sb)) +
@@ -424,12 +439,12 @@ void list_super2(struct ext2_super_block * sb, FILE *f)
                fprintf(f, "MMP update interval:      %u\n",
                        sb->s_mmp_update_interval);
        }
-       if (sb->s_usr_quota_inum)
-               fprintf(f, "User quota inode:         %u\n",
-                       sb->s_usr_quota_inum);
-       if (sb->s_grp_quota_inum)
-               fprintf(f, "Group quota inode:        %u\n",
-                       sb->s_grp_quota_inum);
+       for (qtype = 0; qtype < MAXQUOTAS; qtype++) {
+               if (*quota_sb_inump(sb, qtype) != 0)
+                       fprintf(f, "%-26s%u\n",
+                               quota_type2prefix(qtype),
+                               *quota_sb_inump(sb, qtype));
+       }
 
        if (sb->s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_METADATA_CSUM)
                fprintf(f, "Checksum:                 0x%08x\n",