Whamcloud - gitweb
LU-5519 lfsck: repair master LMV for striped directory 47/11847/12
authorFan Yong <fan.yong@intel.com>
Wed, 27 Aug 2014 21:35:00 +0000 (05:35 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 31 Oct 2014 02:26:51 +0000 (02:26 +0000)
commitb6a3222a0b35b939f40bb93087d8993e81885b26
treeb0d1066f18c11b43157b999c3538c569dcca4517
parent44888417ecbf09fc6f294311dd98914aefda05c4
LU-5519 lfsck: repair master LMV for striped directory

If the master MDT-object of a striped directory lost its LMV EA,
then there may be some users have created some files under the
master MDT-object directly. Under such case, the LFSCK cannot
re-generate LMV EA for the master MDT-object, because we should
keep the existing files to be visible to client. Then the LFSCK
will mark the striped directory as read-only and keep it there
to be handled by administrator manually.

If nobody has created files under the master MDT-object of the
striped directory, then we will set the master LMV EA and
generate a new rescan (the striped directory) request that will
be handled later by the LFSCK instance on the MDT later.

Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: I4d604cbd346c2cb044503f193ab4745e7fd2c2a2
Reviewed-on: http://review.whamcloud.com/11847
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
24 files changed:
lustre/include/lustre/lustre_idl.h
lustre/include/obd_support.h
lustre/lfsck/lfsck_engine.c
lustre/lfsck/lfsck_internal.h
lustre/lfsck/lfsck_lib.c
lustre/lfsck/lfsck_namespace.c
lustre/lfsck/lfsck_striped_dir.c
lustre/lod/lod_object.c
lustre/mdd/mdd_dir.c
lustre/mdd/mdd_internal.h
lustre/mdd/mdd_object.c
lustre/mdd/mdd_permission.c
lustre/osd-ldiskfs/osd_handler.c
lustre/osd-ldiskfs/osd_internal.h
lustre/osd-ldiskfs/osd_quota.c
lustre/osd-zfs/osd_index.c
lustre/osd-zfs/osd_internal.h
lustre/osd-zfs/osd_quota.c
lustre/osp/osp_internal.h
lustre/osp/osp_object.c
lustre/ptlrpc/wiretest.c
lustre/tests/sanity-lfsck.sh
lustre/utils/wirecheck.c
lustre/utils/wiretest.c