Whamcloud - gitweb
LU-3783 ldlm: ldlm_flock_deadlock() ASSERTION( req != lock ) failed 92/7392/2
authorAndriy Skulysh <Andriy_Skulysh@xyratex.com>
Tue, 20 Aug 2013 12:23:46 +0000 (15:23 +0300)
committerOleg Drokin <oleg.drokin@intel.com>
Mon, 26 Aug 2013 16:21:39 +0000 (16:21 +0000)
Abort processing of flock blockers list
on reaching disconnected export

Change-Id: I8763dd246ef655fee6f926e49b00a7a54c720386
Xyratex-bug-id: MRP-1266
Signed-off-by: Andriy Skulysh <Andriy_Skulysh@xyratex.com>
Reviewed-on: http://review.whamcloud.com/7392
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Keith Mannthey <keith.mannthey@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/ldlm/ldlm_flock.c

index 2f6e357..6273b72 100644 (file)
@@ -203,6 +203,9 @@ ldlm_flock_deadlock(struct ldlm_lock *req, struct ldlm_lock *bl_lock)
                cfs_hash_put(bl_exp->exp_flock_hash, &lock->l_exp_flock_hash);
                 bl_exp = bl_exp_new;
 
+               if (bl_exp->exp_failed)
+                       break;
+
                 if (bl_owner == req_owner && bl_exp == req_exp) {
                         class_export_put(bl_exp);
                         return 1;