+++ /dev/null
-diff -urN quota-tools.org/quota.c quota-tools/quota.c
---- quota-tools.org/quota.c Fri May 31 18:01:16 2002
-+++ quota-tools/quota.c Fri May 31 17:59:37 2002
-@@ -173,7 +173,7 @@
- iover = 1;
- }
- else if (q->dq_dqb.dqb_isoftlimit
-- && q->dq_dqb.dqb_curinodes >= q->dq_dqb.dqb_isoftlimit) {
-+ && q->dq_dqb.dqb_curinodes > q->dq_dqb.dqb_isoftlimit) {
- if (q->dq_dqb.dqb_itime > now) {
- msgi = _("In file grace period on");
- iover = 2;
-@@ -189,7 +189,7 @@
- bover = 1;
- }
- else if (q->dq_dqb.dqb_bsoftlimit
-- && toqb(q->dq_dqb.dqb_curspace) >= q->dq_dqb.dqb_bsoftlimit) {
-+ && toqb(q->dq_dqb.dqb_curspace) > q->dq_dqb.dqb_bsoftlimit) {
- if (q->dq_dqb.dqb_btime > now) {
- msgb = _("In block grace period on");
- bover = 2;
-diff -urN quota-tools.org/quotasys.c quota-tools/quotasys.c
---- quota-tools.org/quotasys.c Fri May 31 18:01:16 2002
-+++ quota-tools/quotasys.c Fri May 31 17:59:38 2002
-@@ -371,7 +371,7 @@
- ret = quotafile_ops_1.check_file(fd, type);
- close(fd);
- }
-- else if (errno != ENOENT)
-+ else if (errno != ENOENT && errno != EPERM)
- errstr(_("Can't open quotafile %s: %s\n"), name, strerror(errno));
- return ret;
- }
-@@ -520,6 +520,8 @@
- struct stat st;
-
- kernel_formats = 0;
-+ if (!stat("/proc/fs/xfs/stat", &st))
-+ kernel_formats |= (1 << QF_XFS);
- if ((f = fopen(QSTAT_FILE, "r"))) {
- /* Parse statistics file */
- fgets(buf, sizeof(buf), f);
-@@ -545,8 +547,6 @@
- struct v2_dqstats v2_stats;
- struct sigaction sig, oldsig;
-
-- if (!stat("/proc/fs/xfs/stat", &st))
-- kernel_formats |= (1 << QF_XFS);
- /* This signal handling is needed because old kernels send us SIGSEGV as they try to resolve the device */
- sig.sa_handler = SIG_IGN;
- sig.sa_sigaction = NULL;
-