Whamcloud - gitweb
LU-3884 lfsck: LFSCK should NOT hold root object 43/7643/3
authorFan Yong <fan.yong@intel.com>
Tue, 20 Aug 2013 15:10:04 +0000 (23:10 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 20 Sep 2013 21:29:05 +0000 (21:29 +0000)
commit02eb3c533534741d7f90a2af92e13a4744f1c1f8
tree9eed105da2dbd56bc2e9fd375fbddcb382cf6676
parent658d349a5acac33d0e5b1d27c979873ae4c585b4
LU-3884 lfsck: LFSCK should NOT hold root object

The root object may be accessed via local storage stack and release
the reference by lu_object_put_nocache(), then the root object will
be marked as LU_OBJECT_HEARD_BANSHEE. On the other hand, the LFSCK
still holds reference on the root object. Under such case, if some
others want to access the root object, they have to wait the LFSCK
to release the root object and re-generate the root object in RAM.
But if the LFSCK does not release the reference on the root object
until the device umount, then all the others will hung there.

Test-Parameters: testlist=sanity-lfsck
Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: I068c442ae808bb2f018e93e0a584a35dcf4c2f9c
Reviewed-on: http://review.whamcloud.com/7643
Tested-by: Hudson
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/lfsck/lfsck_bookmark.c
lustre/lfsck/lfsck_internal.h
lustre/lfsck/lfsck_lib.c
lustre/lfsck/lfsck_namespace.c