]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_quota: convert time_to_string to use time64_t
authorDarrick J. Wong <darrick.wong@oracle.com>
Fri, 20 Nov 2020 22:03:27 +0000 (17:03 -0500)
committerEric Sandeen <sandeen@sandeen.net>
Fri, 20 Nov 2020 22:03:27 +0000 (17:03 -0500)
Rework the time_to_string helper to be capable of dealing with 64-bit
timestamps.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
quota/quota.c
quota/quota.h
quota/report.c
quota/util.c

index 9545cc430a93666b877221194d16abe3b6fd7e71..8ba0995d9174697d6b2ad71a8563f13730d9a229 100644 (file)
@@ -48,6 +48,7 @@ quota_mount(
        uint            flags)
 {
        fs_disk_quota_t d;
+       time64_t        timer;
        char            *dev = mount->fs_name;
        char            c[8], h[8], s[8];
        uint            qflags;
@@ -100,6 +101,7 @@ quota_mount(
        }
 
        if (form & XFS_BLOCK_QUOTA) {
+               timer = d.d_btimer;
                qflags = (flags & HUMAN_FLAG);
                if (d.d_blk_hardlimit && d.d_bcount > d.d_blk_hardlimit)
                        qflags |= LIMIT_FLAG;
@@ -111,16 +113,17 @@ quota_mount(
                                bbs_to_string(d.d_blk_softlimit, s, sizeof(s)),
                                bbs_to_string(d.d_blk_hardlimit, h, sizeof(h)),
                                d.d_bwarns,
-                               time_to_string(d.d_btimer, qflags));
+                               time_to_string(timer, qflags));
                else
                        fprintf(fp, " %10llu %10llu %10llu   %02d %9s ",
                                (unsigned long long)d.d_bcount >> 1,
                                (unsigned long long)d.d_blk_softlimit >> 1,
                                (unsigned long long)d.d_blk_hardlimit >> 1,
                                d.d_bwarns,
-                               time_to_string(d.d_btimer, qflags));
+                               time_to_string(timer, qflags));
        }
        if (form & XFS_INODE_QUOTA) {
+               timer = d.d_itimer;
                qflags = (flags & HUMAN_FLAG);
                if (d.d_ino_hardlimit && d.d_icount > d.d_ino_hardlimit)
                        qflags |= LIMIT_FLAG;
@@ -132,16 +135,17 @@ quota_mount(
                                num_to_string(d.d_ino_softlimit, s, sizeof(s)),
                                num_to_string(d.d_ino_hardlimit, h, sizeof(h)),
                                d.d_iwarns,
-                               time_to_string(d.d_itimer, qflags));
+                               time_to_string(timer, qflags));
                else
                        fprintf(fp, " %10llu %10llu %10llu   %02d %9s ",
                                (unsigned long long)d.d_icount,
                                (unsigned long long)d.d_ino_softlimit,
                                (unsigned long long)d.d_ino_hardlimit,
                                d.d_iwarns,
-                               time_to_string(d.d_itimer, qflags));
+                               time_to_string(timer, qflags));
        }
        if (form & XFS_RTBLOCK_QUOTA) {
+               timer = d.d_rtbtimer;
                qflags = (flags & HUMAN_FLAG);
                if (d.d_rtb_hardlimit && d.d_rtbcount > d.d_rtb_hardlimit)
                        qflags |= LIMIT_FLAG;
@@ -153,14 +157,14 @@ quota_mount(
                                bbs_to_string(d.d_rtb_softlimit, s, sizeof(s)),
                                bbs_to_string(d.d_rtb_hardlimit, h, sizeof(h)),
                                d.d_rtbwarns,
-                               time_to_string(d.d_rtbtimer, qflags));
+                               time_to_string(timer, qflags));
                else
                        fprintf(fp, " %10llu %10llu %10llu   %02d %9s ",
                                (unsigned long long)d.d_rtbcount >> 1,
                                (unsigned long long)d.d_rtb_softlimit >> 1,
                                (unsigned long long)d.d_rtb_hardlimit >> 1,
                                d.d_rtbwarns,
-                               time_to_string(d.d_rtbtimer, qflags));
+                               time_to_string(timer, qflags));
        }
        fprintf(fp, "%s\n", mount->fs_dir);
        return 1;
index 025d887726d8d1b6840ba857316fc488e6896b55..11f62b208e6a99d9440f54126d836643f1e6f82d 100644 (file)
@@ -40,7 +40,7 @@ enum {
  */
 extern char *type_to_string(uint __type);
 extern char *form_to_string(uint __form);
-extern char *time_to_string(time_t __time, uint __flags);
+extern char *time_to_string(time64_t __time, uint __flags);
 extern char *bbs_to_string(uint64_t __v, char *__c, uint __size);
 extern char *num_to_string(uint64_t __v, char *__c, uint __size);
 extern char *pct_to_string(uint64_t __v, uint64_t __t, char *__c, uint __s);
index e6def916b82792dc4f44c69c59ffc6a4f95a5f26..2d5024e95177e2e58b2eb047a8f9516f0c81fb21 100644 (file)
@@ -330,6 +330,7 @@ report_mount(
        uint            flags)
 {
        fs_disk_quota_t d;
+       time64_t        timer;
        char            *dev = mount->fs_name;
        char            c[8], h[8], s[8];
        uint            qflags;
@@ -397,6 +398,7 @@ report_mount(
        }
 
        if (form & XFS_BLOCK_QUOTA) {
+               timer = d.d_btimer;
                qflags = (flags & HUMAN_FLAG);
                if (d.d_blk_hardlimit && d.d_bcount > d.d_blk_hardlimit)
                        qflags |= LIMIT_FLAG;
@@ -408,16 +410,17 @@ report_mount(
                                bbs_to_string(d.d_blk_softlimit, s, sizeof(s)),
                                bbs_to_string(d.d_blk_hardlimit, h, sizeof(h)),
                                d.d_bwarns,
-                               time_to_string(d.d_btimer, qflags));
+                               time_to_string(timer, qflags));
                else
                        fprintf(fp, " %10llu %10llu %10llu     %02d %9s",
                                (unsigned long long)d.d_bcount >> 1,
                                (unsigned long long)d.d_blk_softlimit >> 1,
                                (unsigned long long)d.d_blk_hardlimit >> 1,
                                d.d_bwarns,
-                               time_to_string(d.d_btimer, qflags));
+                               time_to_string(timer, qflags));
        }
        if (form & XFS_INODE_QUOTA) {
+               timer = d.d_itimer;
                qflags = (flags & HUMAN_FLAG);
                if (d.d_ino_hardlimit && d.d_icount > d.d_ino_hardlimit)
                        qflags |= LIMIT_FLAG;
@@ -429,16 +432,17 @@ report_mount(
                                num_to_string(d.d_ino_softlimit, s, sizeof(s)),
                                num_to_string(d.d_ino_hardlimit, h, sizeof(h)),
                                d.d_iwarns,
-                               time_to_string(d.d_itimer, qflags));
+                               time_to_string(timer, qflags));
                else
                        fprintf(fp, " %10llu %10llu %10llu     %02d %9s",
                                (unsigned long long)d.d_icount,
                                (unsigned long long)d.d_ino_softlimit,
                                (unsigned long long)d.d_ino_hardlimit,
                                d.d_iwarns,
-                               time_to_string(d.d_itimer, qflags));
+                               time_to_string(timer, qflags));
        }
        if (form & XFS_RTBLOCK_QUOTA) {
+               timer = d.d_rtbtimer;
                qflags = (flags & HUMAN_FLAG);
                if (d.d_rtb_hardlimit && d.d_rtbcount > d.d_rtb_hardlimit)
                        qflags |= LIMIT_FLAG;
@@ -450,14 +454,14 @@ report_mount(
                                bbs_to_string(d.d_rtb_softlimit, s, sizeof(s)),
                                bbs_to_string(d.d_rtb_hardlimit, h, sizeof(h)),
                                d.d_rtbwarns,
-                               time_to_string(d.d_rtbtimer, qflags));
+                               time_to_string(timer, qflags));
                else
                        fprintf(fp, " %10llu %10llu %10llu     %02d %9s",
                                (unsigned long long)d.d_rtbcount >> 1,
                                (unsigned long long)d.d_rtb_softlimit >> 1,
                                (unsigned long long)d.d_rtb_hardlimit >> 1,
                                d.d_rtbwarns,
-                               time_to_string(d.d_rtbtimer, qflags));
+                               time_to_string(timer, qflags));
        }
        fputc('\n', fp);
        return 1;
index 50470aba7b05bc1d2fb40d55bf58e36b950937f6..361d2a8ef5c68315633ddaa78b39233afe547307 100644 (file)
 
 char *
 time_to_string(
-       time_t          origin,
+       time64_t        origin,
        uint            flags)
 {
        static char     timestamp[32];
-       time_t          now, timer;
+       time64_t        timer;
+       time_t          now;
        uint            days, hours, minutes, seconds;
 
        if (flags & ABSOLUTE_FLAG) {