Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

quota: Cleanup flags definitions

Currently all quota flags were defined just in kernel-private headers.
Export flags readable / writeable from userspace to userspace via
include/uapi/linux/quota.h.

Signed-off-by: Jan Kara <jack@suse.cz>

Jan Kara 9c45101e 96827adc

+22 -11
+1 -1
fs/quota/dquot.c
··· 1248 1248 1249 1249 return capable(CAP_SYS_RESOURCE) && 1250 1250 (info->dqi_format->qf_fmt_id != QFMT_VFS_OLD || 1251 - !(info->dqi_flags & V1_DQF_RSQUASH)); 1251 + !(info->dqi_flags & DQF_ROOT_SQUASH)); 1252 1252 } 1253 1253 1254 1254 /* needs dq_data_lock */
-3
include/linux/dqblk_v1.h
··· 5 5 #ifndef _LINUX_DQBLK_V1_H 6 6 #define _LINUX_DQBLK_V1_H 7 7 8 - /* Root squash turned on */ 9 - #define V1_DQF_RSQUASH 1 10 - 11 8 /* Numbers of blocks needed for updates */ 12 9 #define V1_INIT_ALLOC 1 13 10 #define V1_INIT_REWRITE 1
+8 -6
include/linux/quota.h
··· 223 223 224 224 struct super_block; 225 225 226 - #define DQF_MASK 0xffff /* Mask for format specific flags */ 227 - #define DQF_GETINFO_MASK 0x1ffff /* Mask for flags passed to userspace */ 228 - #define DQF_SETINFO_MASK 0xffff /* Mask for flags modifiable from userspace */ 229 - #define DQF_SYS_FILE_B 16 230 - #define DQF_SYS_FILE (1 << DQF_SYS_FILE_B) /* Quota file stored as system file */ 231 - #define DQF_INFO_DIRTY_B 31 226 + /* Mask for flags passed to userspace */ 227 + #define DQF_GETINFO_MASK (DQF_ROOT_SQUASH | DQF_SYS_FILE) 228 + /* Mask for flags modifiable from userspace */ 229 + #define DQF_SETINFO_MASK DQF_ROOT_SQUASH 230 + 231 + enum { 232 + DQF_INFO_DIRTY_B = DQF_PRIVATE, 233 + }; 232 234 #define DQF_INFO_DIRTY (1 << DQF_INFO_DIRTY_B) /* Is info dirty? */ 233 235 234 236 extern void mark_info_dirty(struct super_block *sb, int type);
+13 -1
include/uapi/linux/quota.h
··· 126 126 #define IIF_FLAGS 4 127 127 #define IIF_ALL (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS) 128 128 129 + enum { 130 + DQF_ROOT_SQUASH_B = 0, 131 + DQF_SYS_FILE_B = 16, 132 + /* Kernel internal flags invisible to userspace */ 133 + DQF_PRIVATE 134 + }; 135 + 136 + /* Root squash enabled (for v1 quota format) */ 137 + #define DQF_ROOT_SQUASH (1 << DQF_ROOT_SQUASH_B) 138 + /* Quota stored in a system file */ 139 + #define DQF_SYS_FILE (1 << DQF_SYS_FILE_B) 140 + 129 141 struct if_dqinfo { 130 142 __u64 dqi_bgrace; 131 143 __u64 dqi_igrace; 132 - __u32 dqi_flags; 144 + __u32 dqi_flags; /* DFQ_* */ 133 145 __u32 dqi_valid; 134 146 }; 135 147