With current hardware clusters faced with the trouble of creating enough inodes on partitions. Lustre has 0-size files to store some information about files. Current MDS disk sizes allow to store large amount of such files, but EXT4 limits this number to ~4 billions. Lustre FS has features like DNE to distribute metadata over many targets (disks), but disks are used not effectively. It would be great to have ability to store more then ~4 billions inodes on one EXT4 file system. This patches add 1) dirdata feature, that allow to store additional data in direntry 2) code that uses dirdata to store high bits of 64bit inode number. This is third version of the patch set. Changes since v2: * added patch "Removes static definition of dx_root struct" * __le32 used for on-disk data structures * used __u8 type not char * macroses __EXT4_DIR_REC_LEN and EXT4_DIR_REC_LEN renamed * added structures to address dirent fields * removed BUG_ON() execution * no need to add s_usr_quota_inum_hi and s_grp_quota_inum_hi * checksum using high part of inode * fixed bug in size check code Andreas Dilger (1): ext4: dirdata feature Artem Blagodarenko (1): ext4: Add 64-bit inode number support Yang Sheng (1): ext4: Removes static definition of dx_root struct fs/ext4/dir.c | 21 ++-- fs/ext4/ext4.h | 184 +++++++++++++++++++++++++++++++---- fs/ext4/ialloc.c | 19 ++-- fs/ext4/inline.c | 18 ++-- fs/ext4/inode.c | 5 + fs/ext4/namei.c | 289 ++++++++++++++++++++++++++++++++++++++----------------- fs/ext4/resize.c | 8 +- fs/ext4/super.c | 17 +++- 8 files changed, 423 insertions(+), 138 deletions(-) -- 2.13.6 (Apple Git-96)