linux/fs/ocfs2/dlm
Sunil Mushran a2c0cc1579 ocfs2/dlm: dlmlock_remote() needs to account for remastery
In dlmlock_remote(), we wait for the resource to stop being active before
setting the inprogress flag. Active includes recovery, migration, etc.

The problem here is that if the resource was being recovered or migrated, the
new owner could very well be that node itself (and thus not a remote node).
This problem was observed in Oracle bug#12583620. The error messages observed
were as follows:

dlm_send_remote_lock_request:337 ERROR: Error -40 (ELOOP) when sending message 503 (key 0xd6d8c7) to node 2
dlmlock_remote:271 ERROR: dlm status = DLM_BADARGS
dlmlock:751 ERROR: dlm status = DLM_BADARGS

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
2011-07-24 10:30:54 -07:00
..
dlmapi.h
dlmast.c ocfs2/dlm: Cleanup mlogs in dlmthread.c, dlmast.c and dlmdomain.c 2010-12-16 00:46:05 -08:00
dlmcommon.h ocfs2/dlm: Cleanup dlm_wait_for_node_death() and dlm_wait_for_node_recovery() 2011-07-24 10:28:54 -07:00
dlmconvert.c ocfs2: Remove ENTRY from masklog. 2011-02-21 11:10:44 +08:00
dlmconvert.h
dlmdebug.c ocfs2/dlm: Add new dlm message DLM_BEGIN_EXIT_DOMAIN_MSG 2011-05-25 21:05:15 -07:00
dlmdebug.h ocfs2/dlm: Cleanup dlmdebug.c 2010-12-22 18:34:44 -08:00
dlmdomain.c ocfs2/dlm: Trace insert/remove of resource to/from hash 2011-07-24 10:27:54 -07:00
dlmdomain.h
dlmlock.c ocfs2/dlm: dlmlock_remote() needs to account for remastery 2011-07-24 10:30:54 -07:00
dlmmaster.c ocfs2/dlm: Take inflight reference count for remotely mastered resources too 2011-07-24 10:29:54 -07:00
dlmrecovery.c ocfs2/dlm: Cleanup dlm_wait_for_node_death() and dlm_wait_for_node_recovery() 2011-07-24 10:28:54 -07:00
dlmthread.c ocfs2/dlm: Take inflight reference count for remotely mastered resources too 2011-07-24 10:29:54 -07:00
dlmunlock.c ocfs2: Remove ENTRY from masklog. 2011-02-21 11:10:44 +08:00
dlmver.c
dlmver.h
Makefile fs: change to new flag variable 2011-03-17 14:02:57 +01:00