quota: Make _SUSPENDED just a flag
Jan Kara
reviewerPATCH 1/1 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 <[email protected]>
--- fs/dquot.c | 10 ++++++---- include/linux/quotaops.h | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-)
fs/dquot.c +6 -4
@@ -1568,18 +1568,20 @@ static inline void reset_enable_flags(struct quota_info *dqopt, int type, {switch (type) {case USRQUOTA : - dqopt->flags &= ~DQUOT_USR_ENABLED ;if (remount) dqopt->flags |=DQUOT_USR_SUSPENDED ; -else +else { + dqopt->flags &= ~DQUOT_USR_ENABLED ; dqopt->flags &= ~DQUOT_USR_SUSPENDED ; + }break ;case GRPQUOTA : - dqopt->flags &= ~DQUOT_GRP_ENABLED ;if (remount) dqopt->flags |=DQUOT_GRP_SUSPENDED ; -else +else { + dqopt->flags &= ~DQUOT_GRP_ENABLED ; dqopt->flags &= ~DQUOT_GRP_SUSPENDED ; + }break ; } }
include/linux/quotaops.h +4 -2
@@ -70,8 +70,10 @@ static inline struct mem_dqinfo *sb_dqinfo(struct super_block *sb, int type)static inline int sb_has_quota_enabled (struct super_block *sb,int type) {if (type ==USRQUOTA ) -return sb_dqopt (sb)->flags &DQUOT_USR_ENABLED ; -return sb_dqopt (sb)->flags &DQUOT_GRP_ENABLED ; +return (sb_dqopt (sb)->flags &DQUOT_USR_ENABLED ) + && !(sb_dqopt (sb)->flags &DQUOT_USR_SUSPENDED ); +return (sb_dqopt (sb)->flags &DQUOT_GRP_ENABLED ) + && !(sb_dqopt (sb)->flags &DQUOT_GROUP_SUSPENDED ); }static inline int sb_any_quota_enabled (struct super_block *sb)
Signature · 1 line
1.5.2.4