Whamcloud - gitweb
LU-1306 ldlm: LBUG at ldlm_lock.c:213
authorAndriy Skulysh <Andriy_Skulysh@xyratex.com>
Wed, 11 Apr 2012 11:55:28 +0000 (14:55 +0300)
committerJohann Lombardi <johann.lombardi@intel.com>
Wed, 10 Oct 2012 06:18:16 +0000 (02:18 -0400)
Protect l_flags with locking to prevent race on
signal reception.

Xyratex-bug-id: MRP-420
Signed-off-by: Andriy Skulysh <Andriy_Skulysh@xyratex.com>
Reviewed-by: Vitaly Fertman <vitaly_fertman@xyratex.com>
Reviewed-by: Iurii Golovach <iurii_golovach@xyratex.com>
Change-Id: I98ba5e6e7a287090f6bd2a270c89a7671875bb9a
Reviewed-on: http://review.whamcloud.com/2727
Reviewed-by: Iurii Golovach <Iurii_Golovach@xyratex.com>
Reviewed-by: Cory Spitz <spitzcor@cray.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/ldlm/ldlm_flock.c

index 648b7ba..34e8bab 100644 (file)
@@ -484,7 +484,9 @@ ldlm_flock_interrupted_wait(void *data)
         spin_unlock(&ldlm_flock_waitq_lock);
 
         /* client side - set flag to prevent lock from being put on lru list */
+        lock_res_and_lock(lock);
         lock->l_flags |= LDLM_FL_CBPENDING;
+        unlock_res_and_lock(lock);
 
         EXIT;
 }