This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Cluster Project branch, RHEL4, updated. gfs-kernel_2_6_9_76-5-gb95f5dd


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Cluster Project".

http://sources.redhat.com/git/gitweb.cgi?p=cluster.git;a=commitdiff;h=b95f5dd435df474b5b5c55927ae86b52f21c0b28

The branch, RHEL4 has been updated
       via  b95f5dd435df474b5b5c55927ae86b52f21c0b28 (commit)
      from  9e8a8cd7262ad0228c1d1311d2f6ea45f01034fa (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b95f5dd435df474b5b5c55927ae86b52f21c0b28
Author: David Teigland <teigland@redhat.com>
Date:   Thu Feb 28 09:49:26 2008 -0600

    lock_dlm: skip busy plocks in unlock
    
    bz 432707
    
    Another problem with multiple threads manipulating the same
    plocks (also see bz 383391).  In this case thread1 was waiting
    on a plock that was in the dlm, when thread2 came and tried to
    unlock it (due to the process exiting and closing all files).
    dlm returns EBUSY for the unlock, which causes lock_dlm to assert
    (another work around could be to just not assert on EBUSY.)
    The "busy" flag was recently added to plocks to work around
    another similar problem with multiple threads; use that to
    just skip the unlock on any plock that's busy.

-----------------------------------------------------------------------

Summary of changes:
 gfs-kernel/src/dlm/plock.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/gfs-kernel/src/dlm/plock.c b/gfs-kernel/src/dlm/plock.c
index 9137c8b..41dbf27 100644
--- a/gfs-kernel/src/dlm/plock.c
+++ b/gfs-kernel/src/dlm/plock.c
@@ -835,6 +835,8 @@ static int punlock_internal(struct dlm_resource *r, unsigned long owner,
 	list_for_each_entry_safe(po, safe, &r->locks, list) {
 		if (po->owner != owner)
 			continue;
+		if (po->busy)
+			continue;
 		if (!ranges_overlap(po->start, po->end, start, end))
 			continue;
 


hooks/post-receive
--
Cluster Project


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]