mbox series

[v4,0/4] 64 bit inode counter support

Message ID 20180202094136.13032-1-artem.blagodarenko@gmail.com
Headers show
Series 64 bit inode counter support | expand

Message

Artem Blagodarenko Feb. 2, 2018, 9:41 a.m. UTC
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 4th version of the patch set. Changes since v3:

* ext4_warning_inode() is used to print messages
* DIRENT_INODE_LEN size is 4 bytes
* using structures to access dirdata fields
* some code pieces moved to appropriate patches
* added high part for s_last_orphan, s_first_error_ino, and s_last_error_ino
  fields
* ext4_dirent_inohi changed to ext4_dirent_inode64
* s_inode_goal become 64 bit
* __u64 goal in ext4_ext_migrate()
* added functions set_inode() and get_inode() 
  (in separate patch 3/4)
* 64 bit support in htree_inlinedir_to_tree(), ext4_try_create_inline_dir() and
  ext4_add_dirent_to_inline()
* skip the NUL separator after the name 
* high part of inode number is accessed only if EXT4_DIRENT_INODE64 enabled
* 64bit support for ext4_rename_dir_prepare(), ext4_rename_dir_finish(),
  ext4_rename_delete(), ext4_cross_rename(), ext4_empty_dir(), ext4_rmdir(),
  ext4_rename(), ext4_unlink(), and ext4_setent() 
* heleper functions for access to high part of superblock fields
  based on macroses
* high part of inode number is copied to prevent align problems
* style fixes

Andreas Dilger (1):
  ext4: dirdata feature

Artem Blagodarenko (2):
  ext4: Add helper functions to access inode numbers
  ext4: Add 64-bit inode number support

Yang Sheng (1):
  ext4: Removes static definition of dx_root struct

 fs/ext4/dir.c     |  20 ++-
 fs/ext4/ext4.h    | 182 +++++++++++++++++++++----
 fs/ext4/ialloc.c  |  19 ++-
 fs/ext4/inline.c  |  47 ++++---
 fs/ext4/inode.c   |   5 +
 fs/ext4/migrate.c |   2 +-
 fs/ext4/namei.c   | 390 ++++++++++++++++++++++++++++++++++++++----------------
 fs/ext4/resize.c  |   8 +-
 fs/ext4/super.c   |  54 ++++----
 9 files changed, 528 insertions(+), 199 deletions(-)