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. These patches add 64bit inodes support for e2fsprogs. Third version of patches set. Changes since v2: * preferably keep the INO64 field over LUFID during fsck * disallow setting dirdata + inline_data at the same time * NEXT_DIRENT macros users * fixed using of limits before initialization * comments fixes * some functions and variables renamed * excluded liblustreapi.h header * fixed missing EXT4_FEATURE_INCOMPAT_DIRDATA * fixed wrong s_reserved[] * changed swap functions order * patch "quota: swapping s_prj_quota_inum superblock field" is excluded and sent separetly * quota patch is excluded * added oprhanes inodes support * minor changes Andreas Dilger (2): e2fsck: add support for dirdata feature tests: add basic tests for dirdata feature Artem Blagodarenko (4): debugfs: 64bit inode support ext2fs: add EXT4_FEATURE_INCOMPAT_64INODE support e2fsck: INODE64 high part is more important then LUFID ext2fs: last_oraph 64bit support Bobi Jam (1): tests: e2fsck -D does not change dirdata debugfs/debugfs.c | 2 +- debugfs/htree.c | 2 +- debugfs/ls.c | 69 ++++- debugfs/set_fields.c | 3 +- debugfs/util.c | 5 +- e2fsck/extents.c | 8 +- e2fsck/journal.c | 2 +- e2fsck/pass1.c | 24 +- e2fsck/pass1b.c | 2 +- e2fsck/pass2.c | 170 ++++++++++--- e2fsck/pass3.c | 7 + e2fsck/pass4.c | 2 +- e2fsck/pass5.c | 20 +- e2fsck/problem.c | 5 + e2fsck/problem.h | 3 + e2fsck/quota.c | 2 +- e2fsck/rehash.c | 82 +++--- e2fsck/super.c | 25 +- e2fsck/unix.c | 15 +- ext2ed/inode_com.c | 7 +- ext2ed/super_com.c | 6 +- lib/e2p/feature.c | 2 + lib/e2p/ls.c | 13 +- lib/ext2fs/alloc.c | 8 +- lib/ext2fs/alloc_stats.c | 6 +- lib/ext2fs/bitmaps.c | 2 +- lib/ext2fs/dirblock.c | 33 +++ lib/ext2fs/ext2_fs.h | 30 ++- lib/ext2fs/ext2fs.h | 85 ++++++- lib/ext2fs/extent.c | 2 +- lib/ext2fs/gen_bitmap64.c | 3 +- lib/ext2fs/get_num_dirs.c | 4 +- lib/ext2fs/icount.c | 7 +- lib/ext2fs/initialize.c | 20 +- lib/ext2fs/inline_data.c | 16 +- lib/ext2fs/inode.c | 8 +- lib/ext2fs/link.c | 10 +- lib/ext2fs/newdir.c | 4 +- lib/ext2fs/openfs.c | 4 +- lib/ext2fs/rw_bitmaps.c | 2 +- lib/ext2fs/swapfs.c | 3 + lib/ext2fs/tst_bitmaps.c | 7 +- lib/ext2fs/tst_iscan.c | 2 +- lib/ext2fs/tst_super_size.c | 6 +- misc/findsuper.c | 8 +- misc/fuse2fs.c | 8 +- misc/mke2fs.c | 38 ++- misc/tune2fs.c | 12 +- resize/main.c | 3 +- resize/resize2fs.c | 30 +-- tests/f_dir_optimize/expect.1 | 511 ++++++++++++++++++++++++++++++++++++++ tests/f_dir_optimize/expect.2 | 511 ++++++++++++++++++++++++++++++++++++++ tests/f_dir_optimize/image.gz | Bin 0 -> 102520 bytes tests/f_dir_optimize/name | 1 + tests/f_dir_optimize/script | 36 +++ tests/f_dirdata/expect.1 | 15 ++ tests/f_dirdata/expect.2 | 7 + tests/f_dirdata/image.gz | Bin 0 -> 72169 bytes tests/f_dirdata/name | 1 + tests/f_dirdata_optimize/expect.1 | 10 + tests/f_dirdata_optimize/expect.2 | 7 + tests/f_dirdata_optimize/image.gz | Bin 0 -> 32121 bytes tests/f_dirdata_optimize/name | 1 + tests/f_dirdata_optimize/script | 3 + tests/progs/test_icount.c | 4 +- 65 files changed, 1725 insertions(+), 219 deletions(-) create mode 100644 tests/f_dir_optimize/expect.1 create mode 100644 tests/f_dir_optimize/expect.2 create mode 100644 tests/f_dir_optimize/image.gz create mode 100644 tests/f_dir_optimize/name create mode 100644 tests/f_dir_optimize/script create mode 100644 tests/f_dirdata/expect.1 create mode 100644 tests/f_dirdata/expect.2 create mode 100644 tests/f_dirdata/image.gz create mode 100644 tests/f_dirdata/name create mode 100644 tests/f_dirdata_optimize/expect.1 create mode 100644 tests/f_dirdata_optimize/expect.2 create mode 100644 tests/f_dirdata_optimize/image.gz create mode 100644 tests/f_dirdata_optimize/name create mode 100644 tests/f_dirdata_optimize/script -- 2.14.3 (Apple Git-98)