Whamcloud - gitweb
e2fsck: add Lustre lfsck tool
authorAndreas Dilger <adilger@whamcloud.com>
Fri, 13 Apr 2012 08:32:19 +0000 (02:32 -0600)
committerAndreas Dilger <andreas.dilger@intel.com>
Thu, 25 Apr 2013 07:09:46 +0000 (01:09 -0600)
commit65ca9493fb7a23326be39cc427e1446db73a5b8e
treec890a7c033c07e1b278695106b23b43e938315d3
parentf6ae8af01207d61ba5bf1e734c1749a9febdf592
e2fsck: add Lustre lfsck tool

The lfsck tool, in conjunction with e2fsck, build a DB4 database
of all the inodes and objects on the MDT and OST filesystems.

The lfsck tool combines the databases on the Lustre client,
and can verify that all of the objects referenced by inodes
exist, are not referenced by two inodes, and have a parent
inode.

  LU-266 e2fsck: regenerate LAST_ID file

  e2fsck should be able to regenerate the LAST_ID file if it gets
  corrupted.  This patch will create a new LAST_ID file if it was
  deleted, and removes the unnecessary lfsck_get_last_id function.
  The last_id is then set as before in e2fsck_pass6_ost to be either
  the max objid on disk, or the MDS' max ost id, whichever is larger.

Reported-by: Bernd Schubert <aakef@fastmail.fm>
Signed-off-by: Kit Westneat <kwestneat@ddn.com>
  Change-Id: Ic5396da000909b826b76da2fd5a0b5ce88b06944

  LU-2682 lfsck: fix access to ost_id structures

  Changes in upstream lov_mds_md use lmm_oi and l_ost_oi instead
  of direct _id and _seq access, in preparation for FID-on-OST
  changes.  Update lfsck code to handle new structures.

Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
  Change-Id: If18f5ed34744b8372687472843ccc09108500c1e
  Change-Id: I05b5da92efbedb7b92c6de736c05beef30500c1e

  LU-2677 lfsck: handle smaller lustre_mdt_attrs

  In 2.4 the lustre_mdt_attrs (LMA) structure was shrunk to move out
  the unused SOM fields into a separate structure.  The filter_fid
  structure was shrunk to allow both FF and LMA on 256-byte OST inodes.

  Allow reading both old and new LMA and FF structures, since we only
  care about the initial fields in both of them.

Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
  Change-Id: If6c75d5ee3192ef3761aa9f645175698ebe5ee36

Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
22 files changed:
.gitignore
MCONFIG.in
configure
configure.in
debugfs/Makefile.in
e2fsck/Makefile.in
e2fsck/e2fsck.8.in
e2fsck/e2fsck.c
e2fsck/e2fsck.h
e2fsck/lfsck.8.in [new file with mode: 0644]
e2fsck/lfsck.c [new file with mode: 0644]
e2fsck/lfsck_common.c [new file with mode: 0644]
e2fsck/pass1.c
e2fsck/pass6.c [new file with mode: 0644]
e2fsck/unix.c
e2fsprogs-RHEL-6.spec.in
e2fsprogs-SUSE_LINUX-11.spec.in
e2fsprogs.spec.in
lib/config.h.in
lib/ext2fs/lfsck.h
misc/mke2fs.c
util/subst.conf.in