[Cluster-devel] cluster/gfs2/mount util.c

teigland at sourceware.org teigland at sourceware.org
Wed Dec 20 19:16:49 UTC 2006


CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL50
Changes by:	teigland at sourceware.org	2006-12-20 19:16:49

Modified files:
	gfs2/mount     : util.c 

Log message:
	Support mounting a single fs on multiple mount points.
	bz 218560

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/mount/util.c.diff?cvsroot=cluster&only_with_tag=RHEL50&r1=1.18.4.1&r2=1.18.4.2

--- cluster/gfs2/mount/util.c	2006/12/05 22:27:04	1.18.4.1
+++ cluster/gfs2/mount/util.c	2006/12/20 19:16:49	1.18.4.2
@@ -12,6 +12,7 @@
 extern char *fsname;
 extern int verbose;
 static int gfs_controld_fd = -1;
+static int adding_another_mountpoint;
 
 #define LOCK_DLM_SOCK_PATH "gfs_controld_sock"	/* FIXME: use a header */
 #define MAXLINE 256			/* size of messages with gfs_controld */
@@ -446,6 +447,13 @@
 		goto out;
 	}
 	rv = atoi(buf);
+
+	if (rv == -EALREADY) {
+		log_debug("fs already mounted, adding mountpoint");
+		adding_another_mountpoint = 1;
+		rv = 0;
+		goto out;
+	}
 	if (rv < 0) {
 		warn("lock_dlm_join: gfs_controld join error: %d", rv);
 		if (rv == -EEXIST)
@@ -553,6 +561,9 @@
 	int i, fd, rv;
 	char buf[MAXLINE];
 
+	if (mnterr && adding_another_mountpoint)
+		return 0;
+
 	i = 0;
 	do {
 		fd = gfs_controld_connect();




More information about the Cluster-devel mailing list