Files
linux/fs/ocfs2/dlm
Wengang Wang d2c86fbbf7 ocfs2/dlm: remove potential deadlock -V3
commit b11f1f1ab7 upstream.

When we need to take both dlm_domain_lock and dlm->spinlock, we should take
them in order of: dlm_domain_lock then dlm->spinlock.

There is pathes disobey this order. That is calling dlm_lockres_put() with
dlm->spinlock held in dlm_run_purge_list. dlm_lockres_put() calls dlm_put() at
the ref and dlm_put() locks on dlm_domain_lock.

Fix:
Don't grab/put the dlm when the initialising/releasing lockres.
That grab is not required because we don't call dlm_unregister_domain()
based on refcount.

Signed-off-by: Wengang Wang <wen.gang.wang@oracle.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-08-26 16:41:38 -07:00
..
2009-09-23 18:13:10 -07:00
2009-09-23 18:13:10 -07:00
2009-09-23 18:13:10 -07:00
2008-01-25 15:05:46 -08:00
2009-09-23 18:13:10 -07:00
2009-09-23 18:13:10 -07:00
2008-01-25 15:05:46 -08:00
2008-12-01 14:46:31 -08:00