xfs
[Top] [All Lists]

[PATCH] fix the grace time in xfs_quota

To: xfs@xxxxxxxxxxx
Subject: [PATCH] fix the grace time in xfs_quota
From: Utako Kusaka <utako@xxxxxxxxxxxxxx>
Date: Thu, 15 Feb 2007 16:39:52 +0900
Sender: xfs-bounce@xxxxxxxxxxx
Hi,

When a quota limit is reached at a soft limit, xfs_quota(8) shows the 
incorrect grace time.
Because, the subtraction with '__uint32_t' and 'time_t' are done in 
time_to_string(), and the result does not become a negative value, but
a huge value. This patch fixes it.

Example:
xfs_quota> report
User quota on /home/utako/mpnt (/dev/sda6)
                               Blocks
User ID          Used       Soft       Hard    Warn/Grace
---------- --------------------------------------------------
root          3145728       1000       2000     00 [--none--]
utako            1000       1000       2000     00 [00:00:4294967286]  <--

Group quota on /home/utako/mpnt (/dev/sda6)
                               Blocks
Group ID         Used       Soft       Hard    Warn/Grace
---------- --------------------------------------------------
root          3145728          0          0     00 [--------]
users            1000          0          0     00 [--------]


Signed-off-by: Utako Kusaka <utako@xxxxxxxxxxxxxx>
---

--- xfsprogs-2.8.18-orgn/quota/quota.h  2006-12-13 13:57:23.000000000 +0900
+++ xfsprogs-2.8.18/quota/quota.h       2007-02-15 11:51:20.000000000 +0900
@@ -49,7 +49,7 @@ enum {
  */
 extern char *type_to_string(uint __type);
 extern char *form_to_string(uint __form);
-extern char *time_to_string(__uint32_t __time, uint __flags);
+extern char *time_to_string(time_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);


--- xfsprogs-2.8.18-orgn/quota/util.c   2006-12-13 13:57:23.000000000 +0900
+++ xfsprogs-2.8.18/quota/util.c        2007-02-15 11:51:51.000000000 +0900
@@ -29,7 +29,7 @@
 
 char *
 time_to_string(
-       __uint32_t      origin,
+       time_t          origin,
        uint            flags)
 {
        static char     timestamp[32];


<Prev in Thread] Current Thread [Next in Thread>