gfs2-utils: RHEL7 - libgfs2: Remove path_name from struct gfs2_sbd

Andrew Price andyp at fedoraproject.org
Tue Apr 7 21:22:48 UTC 2015


Gitweb:        http://git.fedorahosted.org/git/?p=gfs2-utils.git;a=commitdiff;h=2e94ddbdf1f60a0099cc4e76ff4f58b34deec21b
Commit:        2e94ddbdf1f60a0099cc4e76ff4f58b34deec21b
Parent:        64ae906eb5b681a2a2cf56502ba6ba5269fb3871
Author:        Andrew Price <anprice at redhat.com>
AuthorDate:    Tue Oct 7 21:23:29 2014 +0100
Committer:     Andrew Price <anprice at redhat.com>
CommitterDate: Wed Apr 1 16:51:34 2015 +0100

libgfs2: Remove path_name from struct gfs2_sbd

This is another gfs2_sbd field which needn't be kept in libgfs2. In the
gfs2_jadd case, create a new structure in which to store command
options, including the mount point path.

Signed-off-by: Andrew Price <anprice at redhat.com>
---
 gfs2/libgfs2/libgfs2.h |    4 +--
 gfs2/libgfs2/misc.c    |    4 +-
 gfs2/mkfs/main_grow.c  |    9 +++----
 gfs2/mkfs/main_jadd.c  |   53 ++++++++++++++++++++++++-----------------------
 4 files changed, 34 insertions(+), 36 deletions(-)

diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h
index bcd4201..84aeaf0 100644
--- a/gfs2/libgfs2/libgfs2.h
+++ b/gfs2/libgfs2/libgfs2.h
@@ -281,8 +281,6 @@ struct gfs2_sbd {
 	unsigned int rgsize;     /* Size of resource groups (in MB) */
 	unsigned int qcsize;     /* Size of quota change files (in MB) */
 
-	char *path_name;
-
 	/* Constants */
 
 	uint32_t sd_fsb2bb;
@@ -680,7 +678,7 @@ extern int lgfs2_open_mnt_dev(const char *path, int flags, struct mntent **mnt);
 extern int lgfs2_open_mnt_dir(const char *path, int flags, struct mntent **mnt);
 extern int find_gfs2_meta(struct gfs2_sbd *sdp);
 extern int dir_exists(const char *dir);
-extern int mount_gfs2_meta(struct gfs2_sbd *sdp);
+extern int mount_gfs2_meta(struct gfs2_sbd *sdp, const char *path);
 extern void cleanup_metafs(struct gfs2_sbd *sdp);
 extern int is_fsname(char *name);
 
diff --git a/gfs2/libgfs2/misc.c b/gfs2/libgfs2/misc.c
index a66ca4f..6feccad 100644
--- a/gfs2/libgfs2/misc.c
+++ b/gfs2/libgfs2/misc.c
@@ -222,7 +222,7 @@ static void sighandler(int error)
 	metafs_interrupted = 1;
 }
 
-int mount_gfs2_meta(struct gfs2_sbd *sdp)
+int mount_gfs2_meta(struct gfs2_sbd *sdp, const char *path)
 {
 	int ret;
 	struct sigaction sa = {	.sa_handler = &sighandler };
@@ -242,7 +242,7 @@ int mount_gfs2_meta(struct gfs2_sbd *sdp)
 	sigaction(SIGCONT, &sa, NULL);
 	sigaction(SIGUSR1, &sa, NULL);
 	sigaction(SIGUSR2, &sa, NULL);
-	ret = mount(sdp->path_name, sdp->metafs_path, "gfs2meta", 0, NULL);
+	ret = mount(path, sdp->metafs_path, "gfs2meta", 0, NULL);
 	if (ret) {
 		rmdir(sdp->metafs_path);
 		return -1;
diff --git a/gfs2/mkfs/main_grow.c b/gfs2/mkfs/main_grow.c
index 4c1225c..79ba56a 100644
--- a/gfs2/mkfs/main_grow.c
+++ b/gfs2/mkfs/main_grow.c
@@ -306,9 +306,9 @@ trunc:
 /**
  * print_info - Print out various bits of (interesting?) information
  */
-static void print_info(struct gfs2_sbd *sdp, char *device)
+static void print_info(struct gfs2_sbd *sdp, char *device, char *mnt_path)
 {
-	log_notice("FS: %-25s%s\n", _("Mount point:"), sdp->path_name);
+	log_notice("FS: %-25s%s\n", _("Mount point:"), mnt_path);
 	log_notice("FS: %-25s%s\n", _("Device:"), device);
 	log_notice("FS: %-25s%llu (0x%llx)\n", _("Size:"),
 		   (unsigned long long)fssize, (unsigned long long)fssize);
@@ -352,7 +352,6 @@ void main_grow(int argc, char *argv[])
 			fprintf(stderr, _("%s: not a mounted gfs2 file system\n"), argv[optind]);
 			continue;
 		}
-		sdp->path_name = mnt->mnt_dir;
 
 		if (lgfs2_get_dev_info(sdp->device_fd, &sdp->dinfo) < 0) {
 			perror(mnt->mnt_fsname);
@@ -373,7 +372,7 @@ void main_grow(int argc, char *argv[])
 			exit(EXIT_FAILURE);
 		}
 		fix_device_geometry(sdp);
-		if (mount_gfs2_meta(sdp)) {
+		if (mount_gfs2_meta(sdp, mnt->mnt_dir)) {
 			perror(_("Failed to mount GFS2 meta file system"));
 			exit(EXIT_FAILURE);
 		}
@@ -429,7 +428,7 @@ void main_grow(int argc, char *argv[])
 			error = -1;
 			goto out;
 		}
-		print_info(sdp, mnt->mnt_fsname);
+		print_info(sdp, mnt->mnt_fsname, mnt->mnt_dir);
 		rgcount = initialize_new_portion(sdp, rgs);
 		if (rgcount == 0 || metafs_interrupted)
 			goto out;
diff --git a/gfs2/mkfs/main_jadd.c b/gfs2/mkfs/main_jadd.c
index d468a6f..4968ec9 100644
--- a/gfs2/mkfs/main_jadd.c
+++ b/gfs2/mkfs/main_jadd.c
@@ -27,8 +27,11 @@
 #define BUF_SIZE 4096
 #define RANDOM(values) ((values) * (random() / (RAND_MAX + 1.0)))
 
-static int quiet = 0;
-static int debug = 0;
+struct jadd_opts {
+	char *path;
+	unsigned quiet:1;
+	unsigned debug:1;
+};
 
 static void
 make_jdata(int fd, const char *value)
@@ -116,7 +119,7 @@ static void print_usage(const char *prog_name)
  *
  */
 
-static void decode_arguments(int argc, char *argv[], struct gfs2_sbd *sdp)
+static void decode_arguments(int argc, char *argv[], struct gfs2_sbd *sdp, struct jadd_opts *opts)
 {
 	int cont = TRUE;
 	int optchar;
@@ -129,7 +132,7 @@ static void decode_arguments(int argc, char *argv[], struct gfs2_sbd *sdp)
 			sdp->qcsize = atoi(optarg);
 			break;
 		case 'D':
-			debug = 1;
+			opts->debug = 1;
 			lgfs2_set_debug(1);
 			break;
 		case 'h':
@@ -143,7 +146,7 @@ static void decode_arguments(int argc, char *argv[], struct gfs2_sbd *sdp)
 			sdp->md.journals = atoi(optarg);
 			break;
 		case 'q':
-			quiet = 1;
+			opts->quiet = 1;
 			break;
 		case 'V':
 			printf("gfs2_jadd %s (built %s %s)\n", VERSION,
@@ -166,7 +169,7 @@ static void decode_arguments(int argc, char *argv[], struct gfs2_sbd *sdp)
 	}
 
 	if (optind < argc) {
-		sdp->path_name = argv[optind];
+		opts->path = argv[optind];
 		optind++;
 	} else
 		die( _("no path specified (try -h for help)\n"));
@@ -174,13 +177,13 @@ static void decode_arguments(int argc, char *argv[], struct gfs2_sbd *sdp)
 	if (optind < argc)
 		die( _("Unrecognized argument: %s\n"), argv[optind]);
 
-	if (debug) {
+	if (opts->debug) {
 		printf( _("Command Line Arguments:\n"));
 		printf("  qcsize = %u\n", sdp->qcsize);
 		printf("  jsize = %u\n", sdp->jsize);
 		printf("  journals = %u\n", sdp->md.journals);
-		printf("  quiet = %d\n", quiet);
-		printf("  path = %s\n", sdp->path_name);
+		printf("  quiet = %u\n", opts->quiet);
+		printf("  path = %s\n", opts->path);
 	}
 }
 
@@ -200,14 +203,14 @@ static void verify_arguments(struct gfs2_sbd *sdp)
  *
  */
 
-static void print_results(struct gfs2_sbd *sdp)
+static void print_results(struct gfs2_sbd *sdp, struct jadd_opts *opts)
 {
-	if (debug)
+	if (opts->debug)
 		printf("\n");
-	else if (quiet)
+	else if (opts->quiet)
 		return;
 
-	printf( _("Filesystem: %s\n"), sdp->path_name);
+	printf( _("Filesystem: %s\n"), opts->path);
 	printf( _("Old Journals: %u\n"), sdp->orig_journals);
 	printf( _("New Journals: %u\n"), sdp->md.journals);
 
@@ -364,12 +367,11 @@ add_qc(struct gfs2_sbd *sdp)
 	}
 }
 
-static void 
-gather_info(struct gfs2_sbd *sdp)
+static void gather_info(struct gfs2_sbd *sdp, struct jadd_opts *opts)
 {
 	struct statfs statbuf;
-	if (statfs(sdp->path_name, &statbuf) < 0) {
-		perror(sdp->path_name);
+	if (statfs(opts->path, &statbuf) < 0) {
+		perror(opts->path);
 		exit(EXIT_FAILURE);
 	}
 	sdp->bsize = statbuf.f_bsize;
@@ -485,6 +487,7 @@ add_j(struct gfs2_sbd *sdp)
 
 void main_jadd(int argc, char *argv[])
 {
+	struct jadd_opts opts = {0};
 	struct gfs2_sbd sbd, *sdp = &sbd;
 	struct mntent *mnt;
 	unsigned int total;
@@ -494,23 +497,21 @@ void main_jadd(int argc, char *argv[])
 	sdp->qcsize = GFS2_DEFAULT_QCSIZE;
 	sdp->md.journals = 1;
 
-	decode_arguments(argc, argv, sdp);
+	decode_arguments(argc, argv, sdp, &opts);
 	verify_arguments(sdp);
 
-	sbd.path_fd = lgfs2_open_mnt_dir(sbd.path_name, O_RDONLY|O_CLOEXEC, &mnt);
+	sbd.path_fd = lgfs2_open_mnt_dir(opts.path, O_RDONLY|O_CLOEXEC, &mnt);
 	if (sbd.path_fd < 0) {
-		fprintf(stderr, _("Error looking up mount '%s': %s\n"), sbd.path_name, strerror(errno));
+		fprintf(stderr, _("Error looking up mount '%s': %s\n"), opts.path, strerror(errno));
 		exit(EXIT_FAILURE);
 	}
 	if (mnt == NULL) {
-		fprintf(stderr, _("%s: not a mounted gfs2 file system\n"), sbd.path_name);
+		fprintf(stderr, _("%s: not a mounted gfs2 file system\n"), opts.path);
 		exit(EXIT_FAILURE);
 	}
-	sbd.path_name = mnt->mnt_dir;
-
-	gather_info(sdp);
+	gather_info(sdp, &opts);
 
-	if (mount_gfs2_meta(sdp)) {
+	if (mount_gfs2_meta(sdp, mnt->mnt_dir)) {
 		perror("GFS2 metafs");
 		exit(EXIT_FAILURE);
 	}
@@ -538,5 +539,5 @@ void main_jadd(int argc, char *argv[])
 	close(sdp->path_fd);
 	cleanup_metafs(sdp);
 	sync();
-	print_results(sdp);
+	print_results(sdp, &opts);
 }


More information about the cluster-commits mailing list