Whamcloud - gitweb
LU-5791 lfsck: use bottom device to locate object 92/13392/10
authorFan Yong <fan.yong@intel.com>
Mon, 24 Nov 2014 09:57:48 +0000 (17:57 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Sat, 21 Feb 2015 06:13:28 +0000 (06:13 +0000)
commitf6d744d259fe6bc0b8750127565fb13fb2e66c06
tree346e94f015f562583f98436b99cf3bd8fd1023b5
parentaaf755642e789765dd8eac1137c2f5557ff03c58
LU-5791 lfsck: use bottom device to locate object

For the LFSCK modification, if only updates single object, or the
objects to be updated reside on the same server, in spite of local
or remote, then try to locate the object(s) against the bottom (OSD
or OSP) device; otherwise, there will be some update(s) on the local
server, and others on remote server, then either locate the object(s)
against LOD device or use two transaction for the modification.

Similarly, the transaction handle will be created on the proper device
corresponding to the object(s).

This patch also fixes some memory leak issues caused by using wrong
device for remote modification, one of the reason for LU-6138.

Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: I09a60bed3bd49a193d57214c4252904cb4546ab2
Reviewed-on: http://review.whamcloud.com/13392
Tested-by: Jenkins
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: wangdi <di.wang@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/lfsck/lfsck_bookmark.c
lustre/lfsck/lfsck_engine.c
lustre/lfsck/lfsck_internal.h
lustre/lfsck/lfsck_layout.c
lustre/lfsck/lfsck_lib.c
lustre/lfsck/lfsck_namespace.c
lustre/lfsck/lfsck_striped_dir.c
lustre/ofd/ofd_io.c
lustre/tests/sanity-lfsck.sh