Whamcloud - gitweb
LU-1601 ldlm: Fix flock detection for different mounts 76/3276/12
authorAndriy Skulysh <Andriy_Skulysh@xyratex.com>
Wed, 12 Dec 2012 13:53:52 +0000 (15:53 +0200)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 18 Sep 2013 14:33:16 +0000 (14:33 +0000)
commit6a073773939cd515055dfb85e522001121261feb
tree3c42b0ae555907e1681c3cbaf1b490e7462a056a
parenta69e2fc317f8dcaba1d8520d3934cda165a46bc3
LU-1601 ldlm: Fix flock detection for different mounts

Deadlock can happen when 2 processes take concurrent locks
on files situated in different mountpoints.

Modify flock detection algorithm to distinguish process by
pair PID+NID instead of PID+export.
It is done by searching for a blocking owner in all OBD's
exports with the same NID.

Xyratex-bug-id: MRP-449
Signed-off-by: Andriy Skulysh <Andriy_Skulysh@xyratex.com>
Reviewed-by: Vitaly Fertman <vitaly_fertman@xyratex.com>
Reviewed-by: Bruce Korb <bruce_korb@xyratex.com>
Change-Id: Ib2969df9b9733af4025e1905caf2378af72c6f18
Reviewed-on: http://review.whamcloud.com/3276
Reviewed-by: Keith Mannthey <keith.mannthey@intel.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/ldlm/ldlm_flock.c
lustre/tests/flocks_test.c
lustre/tests/sanityn.sh