fs/quota: update quota state flags scheme with project quota flags

Current quota state flags scheme doesn't include project quota and thus
shows all flags after DQUOT_USAGE_ENABLED wrong. Fix this and also add
DQUOT_NOLIST_DIRTY to the scheme.

Link: https://lore.kernel.org/r/1602989814-28922-1-git-send-email-dotdot@yandex-team.ru
Signed-off-by: Roman Anufriev <dotdot@yandex-team.ru>
Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
Roman Anufriev 2020-10-18 05:56:54 +03:00 committed by Jan Kara
parent b7cbaf59f6
commit 5190db9fdd
1 changed files with 8 additions and 7 deletions

View File

@ -448,17 +448,18 @@ struct quota_format_type {
};
/**
* Quota state flags - they actually come in two flavors - for users and groups.
* Quota state flags - they come in three flavors - for users, groups and projects.
*
* Actual typed flags layout:
* USRQUOTA GRPQUOTA
* DQUOT_USAGE_ENABLED 0x0001 0x0002
* DQUOT_LIMITS_ENABLED 0x0004 0x0008
* DQUOT_SUSPENDED 0x0010 0x0020
* USRQUOTA GRPQUOTA PRJQUOTA
* DQUOT_USAGE_ENABLED 0x0001 0x0002 0x0004
* DQUOT_LIMITS_ENABLED 0x0008 0x0010 0x0020
* DQUOT_SUSPENDED 0x0040 0x0080 0x0100
*
* Following bits are used for non-typed flags:
* DQUOT_QUOTA_SYS_FILE 0x0040
* DQUOT_NEGATIVE_USAGE 0x0080
* DQUOT_QUOTA_SYS_FILE 0x0200
* DQUOT_NEGATIVE_USAGE 0x0400
* DQUOT_NOLIST_DIRTY 0x0800
*/
enum {
_DQUOT_USAGE_ENABLED = 0, /* Track disk usage for users */