aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2007-04-19 11:30:41 -0400
committerSteven Whitehouse <swhiteho@redhat.com>2007-05-01 04:11:36 -0400
commit7d3c1feb80913ba4253c3517d48b9b3741c44fc9 (patch)
treee52a741e4148c7193617e17d34dc68dc735e0392 /init
parent5f8820960cf4fb621483d4a37c24939ad831bfe7 (diff)
[DLM] fix mode munging
There are flags to enable two specialized features in the dlm: 1. CONVDEADLK causes the dlm to resolve conversion deadlocks internally by changing the granted mode of locks to NL. 2. ALTPR/ALTCW cause the dlm to change the requested mode of locks to PR or CW to grant them if the normal requested mode can't be granted. GFS direct i/o exercises both of these features, especially when mixed with buffered i/o. The dlm has problems with them. The first problem is on the master node. If it demotes a lock as a part of converting it, the actual step of converting the lock isn't being done after the demotion, the lock is just left sitting on the granted queue with a granted mode of NL. I think the mistaken assumption was that the call to grant_pending_locks() would grant it, but that function naturally doesn't look at locks on the granted queue. The second problem is on the process node. If the master either demotes or gives an altmode, the munging of the gr/rq modes is never done in the process copy of the lock, leaving the master/process copies out of sync. Signed-off-by: David Teigland <teigland@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions