ocfs2/dlm: do not get resource spinlock if lockres is new
authorJoseph Qi <[email protected]>
Thu, 25 Sep 2014 23:05:16 +0000 (16:05 -0700)
committerLinus Torvalds <[email protected]>
Fri, 26 Sep 2014 15:10:34 +0000 (08:10 -0700)
commit5760a97c7143c208fa3a8f8cad0ed7dd672ebd28
tree5fa9d3345390c8d86f7768ee6d04d2520d4c28f5
parent56d7acc792c0d98f38f22058671ee715ff197023
ocfs2/dlm: do not get resource spinlock if lockres is new

There is a deadlock case which reported by Guozhonghua:
  https://oss.oracle.com/pipermail/ocfs2-devel/2014-September/010079.html

This case is caused by &res->spinlock and &dlm->master_lock
misordering in different threads.

It was introduced by commit 8d400b81cc83 ("ocfs2/dlm: Clean up refmap
helpers").  Since lockres is new, it doesn't not require the
&res->spinlock.  So remove it.

Fixes: 8d400b81cc83 ("ocfs2/dlm: Clean up refmap helpers")
Signed-off-by: Joseph Qi <[email protected]>
Reviewed-by: joyce.xue <[email protected]>
Reported-by: Guozhonghua <[email protected]>
Cc: Joel Becker <[email protected]>
Cc: Mark Fasheh <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
fs/ocfs2/dlm/dlmmaster.c