Gitweb:
http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 839b6b99a303f8e9a55fcb89e3f8081966180744
Parent: b7c7b8286df65a568a706b16599a4256ac8713c2
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Fri May 7 09:48:11 2010 -0500
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Fri May 7 09:48:11 2010 -0500
gfs_controld: fix do_leave arg
commit 46e0a2ef75abe03455b9e15f22bed2c53a839014 changed the do_leave
arg from table to fsname, but the arg to one do_leave call was not
changed accordingly. The result was that if a mount failed in the kernel,
cleaning up (leaving) the gfs mountgroup wouldn't work.
bz 590000
Signed-off-by: David Teigland <teigland(a)redhat.com>
---
group/gfs_controld/main.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/group/gfs_controld/main.c b/group/gfs_controld/main.c
index 1ca45de..dc841da 100644
--- a/group/gfs_controld/main.c
+++ b/group/gfs_controld/main.c
@@ -888,6 +888,7 @@ void process_connection(int ci)
struct gfsc_mount_args empty;
struct gfsc_mount_args *ma;
char *extra = NULL;
+ char *fsname;
int rv, extra_len;
rv = do_read(client[ci].fd, &h, sizeof(h));
@@ -943,10 +944,16 @@ void process_connection(int ci)
break;
case GFSC_CMD_FS_LEAVE:
+ fsname = strstr(ma->table, ":") + 1;
+ if (!fsname) {
+ log_error("process_connection no fsname in table");
+ goto out;
+ }
+
if (group_mode == GROUP_LIBGROUP)
- do_leave_old(ma->table, h.data);
+ do_leave_old(fsname, h.data);
else
- do_leave(ma->table, h.data);
+ do_leave(fsname, h.data);
break;
case GFSC_CMD_FS_MOUNT_DONE: