aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2008-08-20 10:21:01 -0400
committerMark Fasheh <mfasheh@suse.com>2009-01-05 11:36:56 -0500
commite4bc7b4b7ff783779b6928d55a9308910bf180a3 (patch)
tree1cf54906c8686507f9cc127754210930d27a0471
parent1497d3ad487b64eeea83ac203263802755438949 (diff)
quota: Make _SUSPENDED just a flag
Upto now, DQUOT_USR_SUSPENDED behaved like a state - i.e., either quota was enabled or suspended or none. Now allowed states are 0, ENABLED, ENABLED | SUSPENDED. This will be useful later when we implement separate enabling of quota usage tracking and limits enforcement because we need to keep track of a state which has been suspended. Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
-rw-r--r--fs/dquot.c10
-rw-r--r--include/linux/quotaops.h6
2 files changed, 10 insertions, 6 deletions
diff --git a/fs/dquot.c b/fs/dquot.c
index c88330602ddd..22340c610e1a 100644
--- a/fs/dquot.c
+++ b/fs/dquot.c
@@ -1570,18 +1570,20 @@ static inline void reset_enable_flags(struct quota_info *dqopt, int type,
1570{ 1570{
1571 switch (type) { 1571 switch (type) {
1572 case USRQUOTA: 1572 case USRQUOTA:
1573 dqopt->flags &= ~DQUOT_USR_ENABLED;
1574 if (remount) 1573 if (remount)
1575 dqopt->flags |= DQUOT_USR_SUSPENDED; 1574 dqopt->flags |= DQUOT_USR_SUSPENDED;
1576 else 1575 else {
1576 dqopt->flags &= ~DQUOT_USR_ENABLED;
1577 dqopt->flags &= ~DQUOT_USR_SUSPENDED; 1577 dqopt->flags &= ~DQUOT_USR_SUSPENDED;
1578 }
1578 break; 1579 break;
1579 case GRPQUOTA: 1580 case GRPQUOTA:
1580 dqopt->flags &= ~DQUOT_GRP_ENABLED;
1581 if (remount) 1581 if (remount)
1582 dqopt->flags |= DQUOT_GRP_SUSPENDED; 1582 dqopt->flags |= DQUOT_GRP_SUSPENDED;
1583 else 1583 else {
1584 dqopt->flags &= ~DQUOT_GRP_ENABLED;
1584 dqopt->flags &= ~DQUOT_GRP_SUSPENDED; 1585 dqopt->flags &= ~DQUOT_GRP_SUSPENDED;
1586 }
1585 break; 1587 break;
1586 } 1588 }
1587} 1589}
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h
index adcc7ba3accb..ffd97071cd1e 100644
--- a/include/linux/quotaops.h
+++ b/include/linux/quotaops.h
@@ -67,8 +67,10 @@ static inline struct mem_dqinfo *sb_dqinfo(struct super_block *sb, int type)
67static inline int sb_has_quota_enabled(struct super_block *sb, int type) 67static inline int sb_has_quota_enabled(struct super_block *sb, int type)
68{ 68{
69 if (type == USRQUOTA) 69 if (type == USRQUOTA)
70 return sb_dqopt(sb)->flags & DQUOT_USR_ENABLED; 70 return (sb_dqopt(sb)->flags & DQUOT_USR_ENABLED)
71 return sb_dqopt(sb)->flags & DQUOT_GRP_ENABLED; 71 && !(sb_dqopt(sb)->flags & DQUOT_USR_SUSPENDED);
72 return (sb_dqopt(sb)->flags & DQUOT_GRP_ENABLED)
73 && !(sb_dqopt(sb)->flags & DQUOT_GROUP_SUSPENDED);
72} 74}
73 75
74static inline int sb_any_quota_enabled(struct super_block *sb) 76static inline int sb_any_quota_enabled(struct super_block *sb)