[Cluster-devel] cluster/group/gfs_controld plock.c recover.c

teigland at sourceware.org teigland at sourceware.org
Mon Oct 16 17:12:10 UTC 2006


CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	teigland at sourceware.org	2006-10-16 17:12:10

Modified files:
	group/gfs_controld: plock.c recover.c 

Log message:
	Recent changes to mount scenarios (mounts while another node is doing
	first mount recovery) added a couple places where we need to clear
	the "save_plocks" flag to allow a new mount to begin processing plock
	requests.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/gfs_controld/plock.c.diff?cvsroot=cluster&r1=1.23&r2=1.24
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/group/gfs_controld/recover.c.diff?cvsroot=cluster&r1=1.21&r2=1.22

--- cluster/group/gfs_controld/plock.c	2006/10/09 21:51:49	1.23
+++ cluster/group/gfs_controld/plock.c	2006/10/16 17:12:10	1.24
@@ -865,7 +865,7 @@
 }
 
 /* When mg members receive our options message (for our mount), one of them
-   saves all plock state received to that point in a checkpoint and then sounds
+   saves all plock state received to that point in a checkpoint and then sends
    us our journals message.  We know to retrieve the plock state from the
    checkpoint when we receive our journals message.  Any plocks messages that
    arrive between seeing our options message and our journals message needs to
@@ -943,8 +943,6 @@
 {
 	struct save_msg *sm, *sm2;
 
-	mg->save_plocks = 0;
-
 	if (list_empty(&mg->saved_messages))
 		return;
 
--- cluster/group/gfs_controld/recover.c	2006/10/16 15:09:25	1.21
+++ cluster/group/gfs_controld/recover.c	2006/10/16 17:12:10	1.22
@@ -999,6 +999,7 @@
 		mg->first_mounter = 1;
 		mg->first_mounter_done = 0;
 		mg->mount_client_delay = 0;
+		mg->save_plocks = 0;
 		goto out;
 	} else if (remote_first_mounter_recovery(mg)) {
 		/* delay notifying mount client until we get a successful
@@ -1006,10 +1007,12 @@
 		log_group(mg, "other node doing first mounter recovery, "
 			  "delay notify_mount_client");
 		mg->mount_client_delay = 1;
+		mg->save_plocks = 0;
 		return;
 	}
 
 	retrieve_plocks(mg);
+	mg->save_plocks = 0;
 	process_saved_plocks(mg);
  out:
 	notify_mount_client(mg);




More information about the Cluster-devel mailing list