[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