Whamcloud - gitweb
e2fsck: add support for dirdata feature
authorAndreas Dilger <andreas.dilger@intel.com>
Fri, 13 Apr 2012 19:39:26 +0000 (13:39 -0600)
committerAndreas Dilger <andreas.dilger@intel.com>
Tue, 10 May 2016 05:12:32 +0000 (23:12 -0600)
commite46f5ff5a71b7946e05599fbe62aec1f4a07b636
tree13bc347b0b65128094dcb8f3ecaa174d287fde5e
parent57691a9c7da492d4942e5fc48e7a809baf81d56d
e2fsck: add support for dirdata feature

Add support for the INCOMPAT_DIRDATA feature, which allows
storing extra data in the directory entry beyond the name.
This allows the Lustre File IDentifier to be accessed in
an efficient manner, and would be useful for expanding a
filesystem to allow more than 2^32 inodes in the future.

  LU-1774 e2fsck: e2fsck -D does not change dirdata content

  Fix dir optimization to preserver dirdata content for dot
  and dotdot entries.

Signed-off-by: Bobi Jam <bobijam.xu@intel.com>
  Change-Id: Iae190794da75a2080a8e5cc5b95a49e0c894f72f

  LU-2462 e2fsprogs Consider DIRENT_LUFID flag in link_proc().

  While adding the new file entry in directory block, link_proc()
  calculates minimum record length of the existing directory entry
  without considering the dirent data size and which leads to
  corruption. Changed the code to use EXT2_DIR_REC_LEN() which will
  return correct record length including dirent data size.

Signed-off-by: Manisha Salve <msalve@ddn.com>
  Change-Id: Ic593c558c47a78183143ec8e99d8385ac94d06f7

  LU-4677 libext2fs, e2fsck: don't use ext2_dir_entry_2

  Due to endian issues, do not use ext2_dir_entry_2 because it will
  have the wrong byte order on directory entries that are swabbed.
  Instead, use the standard practice of mask-and-shift to access the
  file_type and dirdata flags.

Signed-off-by: Pravin Shelar <pravin@clusterfs.com>
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
15 files changed:
debugfs/ls.c
e2fsck/pass1.c
e2fsck/pass2.c
e2fsck/pass3.c
e2fsck/problem.c
e2fsck/problem.h
e2fsck/rehash.c
lib/ext2fs/dirblock.c
lib/ext2fs/ext2_fs.h
lib/ext2fs/ext2fs.h
lib/ext2fs/lfsck.h [new file with mode: 0644]
lib/ext2fs/link.c
lib/ext2fs/newdir.c
misc/mke2fs.c
misc/tune2fs.c