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" },
                        "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" },
 
        {       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_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
 
 
 #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(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)
 
 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_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
 
 /*
  * 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
 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
 .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_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 |
                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] = {
 };
 
 static __u32 clear_ok_features[3] = {