[Cluster-devel] Cluster Project branch, RHEL5, updated. cmirror_1_1_15-39-g73916dd

rpeterso at sourceware.org rpeterso at sourceware.org
Wed Apr 9 22:07:45 UTC 2008


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=73916dd1f4ce1fa237a8e01e682e6380132edeeb

The branch, RHEL5 has been updated
       via  73916dd1f4ce1fa237a8e01e682e6380132edeeb (commit)
       via  3c709adffbfcaf7abd60792985631e4c677575cc (commit)
      from  76161dd2dc6dc3030eac72342fe701519e8e53f2 (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 73916dd1f4ce1fa237a8e01e682e6380132edeeb
Author: Bob Peterson <rpeterso at redhat.com>
Date:   Wed Apr 9 17:03:46 2008 -0500

    Resolves: bz 431952: GFS: gfs-kernel should use device major:minor

commit 3c709adffbfcaf7abd60792985631e4c677575cc
Author: Bob Peterson <rpeterso at redhat.com>
Date:   Fri Mar 14 11:17:46 2008 -0500

    Resolves: bz 421761: 'gfs_tool lockdump' wrongly says 'unknown
    mountpoint' re HP cciss RAID array

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

Summary of changes:
 gfs-kernel/src/gfs/proc.c |    9 +++++-
 gfs/gfs_tool/util.c       |   64 +++++++--------------------------------------
 2 files changed, 17 insertions(+), 56 deletions(-)

diff --git a/gfs-kernel/src/gfs/proc.c b/gfs-kernel/src/gfs/proc.c
index c86b4e6..1c38b0d 100644
--- a/gfs-kernel/src/gfs/proc.c
+++ b/gfs-kernel/src/gfs/proc.c
@@ -77,6 +77,7 @@ do_list(char *user_buf, size_t size)
 	struct gfs_sbd *sdp = NULL;
 	unsigned int x;
 	char num[21];
+	char device_id[32];
 	char *buf;
 	int error = 0;
 
@@ -85,8 +86,10 @@ do_list(char *user_buf, size_t size)
 	x = 0;
 	for (tmp = gfs_fs_list.next; tmp != &gfs_fs_list; tmp = tmp->next) {
 		sdp = list_entry(tmp, struct gfs_sbd, sd_list);
+		sprintf(device_id, "%u:%u", MAJOR(sdp->sd_vfs->s_dev),
+			MINOR(sdp->sd_vfs->s_dev));
 		x += sprintf(num, "%lu", (unsigned long)sdp) +
-			strlen(sdp->sd_vfs->s_id) +
+			strlen(device_id) +
 			strlen(sdp->sd_fsname) + 3;
 	}
 
@@ -105,8 +108,10 @@ do_list(char *user_buf, size_t size)
 	x = 0;
 	for (tmp = gfs_fs_list.next; tmp != &gfs_fs_list; tmp = tmp->next) {
 		sdp = list_entry(tmp, struct gfs_sbd, sd_list);
+		sprintf(device_id, "%u:%u", MAJOR(sdp->sd_vfs->s_dev),
+			MINOR(sdp->sd_vfs->s_dev));
 		x += sprintf(buf + x, "%lu %s %s\n",
-			     (unsigned long)sdp, sdp->sd_vfs->s_id, sdp->sd_fsname);
+			     (unsigned long)sdp, device_id, sdp->sd_fsname);
 	}
 
 	if (copy_to_user(user_buf, buf, x))
diff --git a/gfs/gfs_tool/util.c b/gfs/gfs_tool/util.c
index b9a4703..a4c1ab4 100644
--- a/gfs/gfs_tool/util.c
+++ b/gfs/gfs_tool/util.c
@@ -122,52 +122,6 @@ str2lines(char *str)
 }
 
 /**
- * do_basename - Create dm-N style name for the device
- * @device:
- *
- * Returns: Pointer to dm name or basename
- */
-
-static char *
-do_basename(char *device)
-{
-	FILE *file;
-	int found = FALSE;
-	char line[256], major_name[256];
-	unsigned int major_number;
-	struct stat st;
-
-	file = fopen("/proc/devices", "r");
-	if (!file)
-		goto punt;
-
-	while (fgets(line, 256, file)) {
-		if (sscanf(line, "%u %s", &major_number, major_name) != 2)
-			continue;
-		if (strcmp(major_name, "device-mapper") != 0)
-			continue;
-		found = TRUE;
-		break;
-	}
-
-	fclose(file);
-
-	if (!found)
-		goto punt;
-
-	if (stat(device, &st))
-		goto punt;
-	if (major(st.st_rdev) == major_number) {
-		static char realname[16];
-		snprintf(realname, 16, "dm-%u", minor(st.st_rdev));
-		return realname;
-	}
-
- punt:
-	return basename(device);
-}
-
-/**
  * mp2cookie - Find the cookie for a filesystem given its mountpoint
  * @mp:
  * @ioctl_ok: If this is FALSE, it's not acceptable to open() the mountpoint
@@ -181,9 +135,9 @@ mp2cookie(char *mp, int ioctl_ok)
 	char *cookie;
 	char *list, **lines;
 	FILE *file;
-	char line[256], device[256];
-	char *dev = NULL;
+	char line[256], device[256], dev_id[256];
 	unsigned int x;
+	struct stat st;
 
 	cookie = malloc(256);
 	if (!cookie)
@@ -196,6 +150,7 @@ mp2cookie(char *mp, int ioctl_ok)
 		die("can't open /proc/mounts: %s\n",
 		    strerror(errno));
 
+	memset(dev_id, 0, sizeof(dev_id));
 	while (fgets(line, 256, file)) {
 		char path[256], type[256];
 
@@ -206,18 +161,19 @@ mp2cookie(char *mp, int ioctl_ok)
 		if (strcmp(type, "gfs"))
 			die("%s is not a GFS filesystem\n", mp);
 
-		dev = do_basename(device);
-
+		if (stat(device, &st))
+			continue;
+		sprintf(dev_id, "%u:%u", major(st.st_rdev),minor(st.st_rdev));
 		break;
 	}
 
 	fclose(file);
 
 	for (x = 0; *lines[x]; x++) {
-		char s_id[256];
-		sscanf(lines[x], "%s %s", cookie, s_id);
-		if (dev) {
-			if (strcmp(s_id, dev) == 0)
+		char device_id[256];
+		sscanf(lines[x], "%s %s", cookie, device_id);
+		if (dev_id[0]) {
+			if (strcmp(device_id, dev_id) == 0)
 				return cookie;
 		} else {
 			if (strcmp(cookie, mp) == 0)


hooks/post-receive
--
Cluster Project




More information about the Cluster-devel mailing list