cluster/dlm-kernel/src locking.c
teigland@sourceware.org
teigland@sourceware.org
Wed Feb 23 07:37:00 GMT 2005
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: teigland@sourceware.org 2005-02-23 07:37:38
Modified files:
dlm-kernel/src : locking.c
Log message:
When locks on the convert queue are granted, we need to try again to grant
locks from the beginning of the convert queue. Locks at the beginning may
not be grantable because of locks at the end. But, granting locks at the
end (permitted when using the NOORDER flag) may make earlier locks
grantable. Specifically, we have the following situation when running
"gfs_tool freeze" in parallel on three machines:
Granted 1 PR
2 PR
3 PR
* nodeid 3 converts PR->CW
Granted 1 PR
2 PR
Convert 3 PR->CW
* nodeid 2 converts PR->CW
granted mode is demoted to avoid conversion deadlock
Granted 1 PR
Convert 2 NL->CW
3 PR->CW
* nodeid 1 converts PR->CW
granted mode is demoted to avoid conversion deadlock
Granted
Convert 1 NL->CW
2 NL->CW
3 PR->CW
* conversions for 1 and 2 are blocked by 3's PR
* conversion for 3 is granted
Granted 3 CW
Convert 1 NL->CW
2 NL->CW
* other conversions are now grantable, we must try to grant them again
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/cluster/dlm-kernel/src/locking.c.diff?cvsroot=cluster&r1=1.56&r2=1.57
More information about the Cluster-cvs
mailing list