Patchwork ext4: reserve inodes and feature code for 'quota' feature

login
register
mail settings
Submitter Aditya Kali
Date Feb. 15, 2011, 1:06 a.m.
Message ID <AANLkTinvSvUXNR-=pYTNp+dwLNFasuuXqfvVukVkw1qp@mail.gmail.com>
Download mbox | patch
Permalink /patch/83169/
State Accepted
Headers show

Comments

Aditya Kali - Feb. 15, 2011, 1:06 a.m.
I am working on patch to add quota as a built-in feature for ext4
filesystem. The implementation is based on the design given at
https://ext4.wiki.kernel.org/index.php/Design_For_1st_Class_Quota_in_Ext4.
This patch reserves the inode numbers 3 and 4 for quota purposes and
also reserves EXT4_FEATURE_RO_COMPAT_QUOTA feature code.

Signed-off-by: Aditya Kali <adityakali@google.com>
---
 fs/ext4/ext4.h |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

 #define EXT4_FEATURE_INCOMPAT_FILETYPE		0x0002
Tao Ma - Feb. 15, 2011, 2:04 a.m.
Hi Aditya,
On 02/15/2011 09:06 AM, Aditya Kali wrote:
> I am working on patch to add quota as a built-in feature for ext4
> filesystem. The implementation is based on the design given at
> https://ext4.wiki.kernel.org/index.php/Design_For_1st_Class_Quota_in_Ext4.
> This patch reserves the inode numbers 3 and 4 for quota purposes and
> also reserves EXT4_FEATURE_RO_COMPAT_QUOTA feature code.
>
> Signed-off-by: Aditya Kali<adityakali@google.com>
> ---
>   fs/ext4/ext4.h |    3 +++
>   1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
> index 0c8d97b..127f76f 100644
> --- a/fs/ext4/ext4.h
> +++ b/fs/ext4/ext4.h
> @@ -209,6 +209,8 @@ struct ext4_io_submit {
>    */
>   #define	EXT4_BAD_INO		 1	/* Bad blocks inode */
>   #define EXT4_ROOT_INO		 2	/* Root inode */
> +#define EXT4_USR_QUOTA_INO	 3	/* User quota inode */
> +#define EXT4_GRP_QUOTA_INO	 4	/* Group quota inode */
>   #define EXT4_BOOT_LOADER_INO	 5	/* Boot loader inode */
>   #define EXT4_UNDEL_DIR_INO	 6	/* Undelete directory inode */
>   #define EXT4_RESIZE_INO		 7	/* Reserved group descriptors inode */
> @@ -1337,6 +1339,7 @@ static inline void ext4_clear_state_flags(struct
> ext4_inode_info *ei)
>   #define EXT4_FEATURE_RO_COMPAT_GDT_CSUM		0x0010
>   #define EXT4_FEATURE_RO_COMPAT_DIR_NLINK	0x0020
>   #define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE	0x0040
> +#define EXT4_FEATURE_RO_COMPAT_QUOTA		0x0100
>    
I am just wondering why 0x0080 is skipped here? It is reserved already?
>   #define EXT4_FEATURE_INCOMPAT_COMPRESSION	0x0001
>   #define EXT4_FEATURE_INCOMPAT_FILETYPE		0x0002
>    
Regards,
Tao
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Amir Goldstein - Feb. 15, 2011, 5:23 a.m.
On Tue, Feb 15, 2011 at 4:04 AM, Tao Ma <tm@tao.ma> wrote:
> Hi Aditya,
> On 02/15/2011 09:06 AM, Aditya Kali wrote:
>>
>> I am working on patch to add quota as a built-in feature for ext4
>> filesystem. The implementation is based on the design given at
>> https://ext4.wiki.kernel.org/index.php/Design_For_1st_Class_Quota_in_Ext4.
>> This patch reserves the inode numbers 3 and 4 for quota purposes and
>> also reserves EXT4_FEATURE_RO_COMPAT_QUOTA feature code.
>>
>> Signed-off-by: Aditya Kali<adityakali@google.com>
>> ---
>>  fs/ext4/ext4.h |    3 +++
>>  1 files changed, 3 insertions(+), 0 deletions(-)
>>
>> diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
>> index 0c8d97b..127f76f 100644
>> --- a/fs/ext4/ext4.h
>> +++ b/fs/ext4/ext4.h
>> @@ -209,6 +209,8 @@ struct ext4_io_submit {
>>   */
>>  #define       EXT4_BAD_INO             1      /* Bad blocks inode */
>>  #define EXT4_ROOT_INO          2      /* Root inode */
>> +#define EXT4_USR_QUOTA_INO      3      /* User quota inode */
>> +#define EXT4_GRP_QUOTA_INO      4      /* Group quota inode */
>>  #define EXT4_BOOT_LOADER_INO   5      /* Boot loader inode */
>>  #define EXT4_UNDEL_DIR_INO     6      /* Undelete directory inode */
>>  #define EXT4_RESIZE_INO                7      /* Reserved group
>> descriptors inode */
>> @@ -1337,6 +1339,7 @@ static inline void ext4_clear_state_flags(struct
>> ext4_inode_info *ei)
>>  #define EXT4_FEATURE_RO_COMPAT_GDT_CSUM               0x0010
>>  #define EXT4_FEATURE_RO_COMPAT_DIR_NLINK      0x0020
>>  #define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE    0x0040
>> +#define EXT4_FEATURE_RO_COMPAT_QUOTA           0x0100
>>
>
> I am just wondering why 0x0080 is skipped here? It is reserved already?

Yes, it is reserved for EXT4_FEATURE_RO_COMPAT_HAS_SNAPSHOT

>>
>>  #define EXT4_FEATURE_INCOMPAT_COMPRESSION     0x0001
>>  #define EXT4_FEATURE_INCOMPAT_FILETYPE                0x0002
>>
>
> Regards,
> Tao
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Aditya Kali - Feb. 15, 2011, 5:27 a.m.
The code 0x0080 seems to be reserved for
EXT4_FEATURE_RO_COMPAT_HAS_SNAPSHOT in e2fsprogs/lib/ext2fs/ext2_fs.h
for Next3 snapshot feature.

Thanks,
--
Aditya



On Mon, Feb 14, 2011 at 6:04 PM, Tao Ma <tm@tao.ma> wrote:
> Hi Aditya,
> On 02/15/2011 09:06 AM, Aditya Kali wrote:
>>
>> I am working on patch to add quota as a built-in feature for ext4
>> filesystem. The implementation is based on the design given at
>> https://ext4.wiki.kernel.org/index.php/Design_For_1st_Class_Quota_in_Ext4.
>> This patch reserves the inode numbers 3 and 4 for quota purposes and
>> also reserves EXT4_FEATURE_RO_COMPAT_QUOTA feature code.
>>
>> Signed-off-by: Aditya Kali<adityakali@google.com>
>> ---
>>  fs/ext4/ext4.h |    3 +++
>>  1 files changed, 3 insertions(+), 0 deletions(-)
>>
>> diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
>> index 0c8d97b..127f76f 100644
>> --- a/fs/ext4/ext4.h
>> +++ b/fs/ext4/ext4.h
>> @@ -209,6 +209,8 @@ struct ext4_io_submit {
>>   */
>>  #define       EXT4_BAD_INO             1      /* Bad blocks inode */
>>  #define EXT4_ROOT_INO          2      /* Root inode */
>> +#define EXT4_USR_QUOTA_INO      3      /* User quota inode */
>> +#define EXT4_GRP_QUOTA_INO      4      /* Group quota inode */
>>  #define EXT4_BOOT_LOADER_INO   5      /* Boot loader inode */
>>  #define EXT4_UNDEL_DIR_INO     6      /* Undelete directory inode */
>>  #define EXT4_RESIZE_INO                7      /* Reserved group
>> descriptors inode */
>> @@ -1337,6 +1339,7 @@ static inline void ext4_clear_state_flags(struct
>> ext4_inode_info *ei)
>>  #define EXT4_FEATURE_RO_COMPAT_GDT_CSUM               0x0010
>>  #define EXT4_FEATURE_RO_COMPAT_DIR_NLINK      0x0020
>>  #define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE    0x0040
>> +#define EXT4_FEATURE_RO_COMPAT_QUOTA           0x0100
>>
>
> I am just wondering why 0x0080 is skipped here? It is reserved already?
>>
>>  #define EXT4_FEATURE_INCOMPAT_COMPRESSION     0x0001
>>  #define EXT4_FEATURE_INCOMPAT_FILETYPE                0x0002
>>
>
> Regards,
> Tao
>
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Theodore Ts'o - May 24, 2011, 11:01 p.m.
On Mon, Feb 14, 2011 at 05:06:50PM -0800, Aditya Kali wrote:
> I am working on patch to add quota as a built-in feature for ext4
> filesystem. The implementation is based on the design given at
> https://ext4.wiki.kernel.org/index.php/Design_For_1st_Class_Quota_in_Ext4.
> This patch reserves the inode numbers 3 and 4 for quota purposes and
> also reserves EXT4_FEATURE_RO_COMPAT_QUOTA feature code.
> 
> Signed-off-by: Aditya Kali <adityakali@google.com>

I noted that this fell through the cracks; my apologies!  I've applied
this to the ext4 tree.

						- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 0c8d97b..127f76f 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -209,6 +209,8 @@  struct ext4_io_submit {
  */
 #define	EXT4_BAD_INO		 1	/* Bad blocks inode */
 #define EXT4_ROOT_INO		 2	/* Root inode */
+#define EXT4_USR_QUOTA_INO	 3	/* User quota inode */
+#define EXT4_GRP_QUOTA_INO	 4	/* Group quota inode */
 #define EXT4_BOOT_LOADER_INO	 5	/* Boot loader inode */
 #define EXT4_UNDEL_DIR_INO	 6	/* Undelete directory inode */
 #define EXT4_RESIZE_INO		 7	/* Reserved group descriptors inode */
@@ -1337,6 +1339,7 @@  static inline void ext4_clear_state_flags(struct
ext4_inode_info *ei)
 #define EXT4_FEATURE_RO_COMPAT_GDT_CSUM		0x0010
 #define EXT4_FEATURE_RO_COMPAT_DIR_NLINK	0x0020
 #define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE	0x0040
+#define EXT4_FEATURE_RO_COMPAT_QUOTA		0x0100

 #define EXT4_FEATURE_INCOMPAT_COMPRESSION	0x0001