Whamcloud - gitweb
Add project feature flag EXT4_FEATURE_RO_COMPAT_PROJECT
authorLi Xi <pkuelelixi@gmail.com>
Tue, 1 Mar 2016 03:36:13 +0000 (22:36 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 6 Mar 2016 20:56:28 +0000 (15:56 -0500)
This patch add project feature flag EXT4_FEATURE_RO_COMPAT_PROJECT.
Project feature is a read-only compat feature. Thus, an ext4 file
system with project feature enabled could only be read by ext4
kernel module without project feature support.

Signed-off-by: Li Xi <lixi@ddn.com>
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
lib/e2p/feature.c
lib/ext2fs/ext2_fs.h
lib/ext2fs/ext2fs.h
misc/ext4.5.in
misc/mke2fs.c
misc/tune2fs.c

index 737b0b9..17d2ad0 100644 (file)
@@ -70,6 +70,8 @@ static struct feature feature_list[] = {
                        "replica" },
        {       E2P_FEATURE_RO_INCOMPAT, EXT4_FEATURE_RO_COMPAT_READONLY,
                        "read-only" },
+       {       E2P_FEATURE_RO_INCOMPAT, EXT4_FEATURE_RO_COMPAT_PROJECT,
+                       "project"},
 
        {       E2P_FEATURE_INCOMPAT, EXT2_FEATURE_INCOMPAT_COMPRESSION,
                        "compression" },
index 1f62c58..4221a6a 100644 (file)
@@ -791,6 +791,7 @@ struct ext2_super_block {
 #define EXT4_FEATURE_RO_COMPAT_METADATA_CSUM   0x0400
 #define EXT4_FEATURE_RO_COMPAT_REPLICA         0x0800
 #define EXT4_FEATURE_RO_COMPAT_READONLY                0x1000
+#define EXT4_FEATURE_RO_COMPAT_PROJECT         0x2000 /* Project quota */
 
 
 #define EXT2_FEATURE_INCOMPAT_COMPRESSION      0x0001
@@ -882,6 +883,7 @@ EXT4_FEATURE_RO_COMPAT_FUNCS(bigalloc,              4, BIGALLOC)
 EXT4_FEATURE_RO_COMPAT_FUNCS(metadata_csum,    4, METADATA_CSUM)
 EXT4_FEATURE_RO_COMPAT_FUNCS(replica,          4, REPLICA)
 EXT4_FEATURE_RO_COMPAT_FUNCS(readonly,         4, READONLY)
+EXT4_FEATURE_RO_COMPAT_FUNCS(project,          4, PROJECT)
 
 EXT4_FEATURE_INCOMPAT_FUNCS(compression,       2, COMPRESSION)
 EXT4_FEATURE_INCOMPAT_FUNCS(filetype,          2, FILETYPE)
index 30e913c..f6fed2c 100644 (file)
@@ -591,7 +591,8 @@ typedef struct ext2_icount *ext2_icount_t;
                                         EXT4_FEATURE_RO_COMPAT_BIGALLOC|\
                                         EXT4_FEATURE_RO_COMPAT_QUOTA|\
                                         EXT4_FEATURE_RO_COMPAT_METADATA_CSUM|\
-                                        EXT4_FEATURE_RO_COMPAT_READONLY)
+                                        EXT4_FEATURE_RO_COMPAT_READONLY |\
+                                        EXT4_FEATURE_RO_COMPAT_PROJECT)
 
 /*
  * These features are only allowed if EXT2_FLAG_SOFTSUPP_FEATURES is passed
index dbd6dde..e892743 100644 (file)
@@ -214,6 +214,11 @@ Causes the quota files (i.e., user.quota and
 group.quota which existed
 in the older quota design) to be hidden inodes.
 .TP
+.B project
+.br
+This ext4 feature provides project quota support. With this feature,
+the project ID of inode will be managed when the filesystem is mounted.
+.TP
 .B resize_inode
 .br
 This file system feature indicates that space has been reserved so
index d34f625..48f15a5 100644 (file)
@@ -1096,7 +1096,8 @@ static __u32 ok_features[3] = {
                EXT4_FEATURE_RO_COMPAT_GDT_CSUM|
                EXT4_FEATURE_RO_COMPAT_BIGALLOC|
                EXT4_FEATURE_RO_COMPAT_QUOTA|
-               EXT4_FEATURE_RO_COMPAT_METADATA_CSUM
+               EXT4_FEATURE_RO_COMPAT_METADATA_CSUM|
+               EXT4_FEATURE_RO_COMPAT_PROJECT
 };
 
 
index ebd31fa..0a0c996 100644 (file)
@@ -159,7 +159,8 @@ static __u32 ok_features[3] = {
                EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER |
                EXT4_FEATURE_RO_COMPAT_QUOTA |
                EXT4_FEATURE_RO_COMPAT_METADATA_CSUM |
-               EXT4_FEATURE_RO_COMPAT_READONLY
+               EXT4_FEATURE_RO_COMPAT_READONLY |
+               EXT4_FEATURE_RO_COMPAT_PROJECT
 };
 
 static __u32 clear_ok_features[3] = {