On Sat, May 06, 2017 at 02:19:21PM -0400, Artem Blagodarenko wrote: > From: Artem Blagodarenko <artem.blagodarenko@xxxxxxxxx> > > This INCOMPAT_LARGEDIR feature allows larger directories to be created > in ldiskfs, both with directory sizes over 2GB and and a maximum htree > depth of 3 instead of the current limit of 2. These features are needed > in order to exceed the current limit of approximately 10M entries in a > single directory. > > Signed-off-by: Yang Sheng <yang.sheng@xxxxxxxxx> > Signed-off-by: Artem Blagodarenko <artem.blagodarenko@xxxxxxxxxxx> I'm going to fold the following minor fix-up to this patch before I send it to Linus. - Ted diff --git a/fs/ext4/ext4_jbd2.h b/fs/ext4/ext4_jbd2.h index f97611171023..5e61e464d71c 100644 --- a/fs/ext4/ext4_jbd2.h +++ b/fs/ext4/ext4_jbd2.h @@ -77,7 +77,14 @@ #define EXT4_RESERVE_TRANS_BLOCKS 12U -#define EXT4_INDEX_EXTRA_TRANS_BLOCKS 8 +/* + * Number of credits needed if we need to insert an entry into a + * directory. For each new index block, we need 4 blocks (old index + * block, new index block, bitmap block, bg summary). For normal + * htree directories there are 2 levels; if the largedir feature + * enabled it's 3 levels. + */ +#define EXT4_INDEX_EXTRA_TRANS_BLOCKS 12U #ifdef CONFIG_QUOTA /* Amount of blocks needed for quota update - we know that the structure was