[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

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



CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	teigland 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);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]