Whamcloud - gitweb
LU-6301 llite: cleanup open handle for client open failure 09/13709/13
authorFan Yong <fan.yong@intel.com>
Sun, 30 Nov 2014 00:26:29 +0000 (08:26 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Tue, 3 Mar 2015 02:11:38 +0000 (02:11 +0000)
commitd2b203692e24cde8e39266f91e9a150c5a287111
tree6b21b9bb3052cbe3cec3f8e5c27b6c28574594cf
parent2a7abc63732a6a7674bc606df9ce641dfe7bf092
LU-6301 llite: cleanup open handle for client open failure

For open case, the client side open handling thread may hit error
after the MDT grant the open. Under such case, the client should
send close RPC to the MDT as cleanup; otherwise, the open handle
on the MDT will be leaked there until the client umount or evicted.

If the LFSCK marks LU_OBJECT_HEARD_BANSHEE on the MDT-object that is
opened by others for repairing some inconsistency, such as repairing
multiple-referenced OST-object, because the leaked open handle still
references the MDT-object, then it will block the subsequent threads
that want to locate such object via FID.

Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: I1fff2cde179b039e3bee562ef79d5cf3587fe3c8
Reviewed-on: http://review.whamcloud.com/13709
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Jenkins
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/llite/llite_internal.h
lustre/llite/llite_lib.c
lustre/llite/namei.c