[multipathd] make clear in the logs what triggered an action
authorChristophe Varoqui <root@xa-s05.(none)>
Thu, 24 Nov 2005 16:43:53 +0000 (17:43 +0100)
committerChristophe Varoqui <root@xa-s05.(none)>
Thu, 24 Nov 2005 16:43:53 +0000 (17:43 +0100)
Nov 24 17:37:58 | mpath0: event checker started
Nov 24 17:37:58 | mpath1: event checker started
Nov 24 17:37:58 | path checkers start up
Nov 24 17:38:08 | sdb: add path (uevent)
Nov 24 17:38:08 | 8:16: ownership set to mpath0
Nov 24 17:38:08 | sdc: add path (uevent)
Nov 24 17:38:08 | 8:32: ownership set to mpath1
Nov 24 17:38:23 | mpath1: switch to path group #1
Nov 24 17:39:21 | mpath1: switch to path group #2 (operator)
Nov 24 17:39:36 | mpath1: switch to path group #1
Nov 24 17:39:39 | mpath0: switch to path group #2
Nov 24 17:39:42 | sdb: remove path (operator)
Nov 24 17:39:47 | mpath1: switch to path group #2
Nov 24 17:40:15 | mpath1: switch to path group #1
Nov 24 17:40:50 | sdb: remove path (uevent)
Nov 24 17:40:50 | sdb: spurious uevent, path not in pathvec
Nov 24 17:40:50 | uevent trigger error
Nov 24 17:41:03 | sdb: add path (uevent)
Nov 24 17:41:04 | 8:16: ownership set to mpath0

multipathd/cli_handlers.c
multipathd/main.c
multipathd/main.h

index d5b8474..59bafb6 100644 (file)
@@ -10,6 +10,7 @@
 #include <config.h>
 #include <configure.h>
 #include <blacklist.h>
+#include <debug.h>
 
 #include "main.h"
 #include "cli.h"
@@ -19,6 +20,8 @@ cli_list_paths (void * v, char ** reply, int * len, void * data)
 {
        struct vectors * vecs = (struct vectors *)data;
 
+       condlog(3, "list paths (operator)");
+
        return show_paths(reply, len, vecs);
 }
 
@@ -27,6 +30,8 @@ cli_list_maps (void * v, char ** reply, int * len, void * data)
 {
        struct vectors * vecs = (struct vectors *)data;
 
+       condlog(3, "list maps (operator)");
+
        return show_maps(reply, len, vecs);
 }
 
@@ -36,12 +41,15 @@ cli_add_path (void * v, char ** reply, int * len, void * data)
        struct vectors * vecs = (struct vectors *)data;
        char * param = get_keyparam(v, PATH);
 
+       condlog(2, "%s: add path (operator)", param);
+
        if (blacklist(conf->blist, param)) {
                *reply = strdup("blacklisted");
                *len = strlen(*reply) + 1;
+               condlog(2, "%s: path blacklisted", param);
                return 0;
        }
-       return uev_add_path(param, vecs);
+       return ev_add_path(param, vecs);
 }
 
 int
@@ -50,7 +58,9 @@ cli_del_path (void * v, char ** reply, int * len, void * data)
        struct vectors * vecs = (struct vectors *)data;
        char * param = get_keyparam(v, PATH);
 
-       return uev_remove_path(param, vecs);
+       condlog(2, "%s: remove path (operator)", param);
+
+       return ev_remove_path(param, vecs);
 }
 
 int
@@ -59,7 +69,9 @@ cli_add_map (void * v, char ** reply, int * len, void * data)
        struct vectors * vecs = (struct vectors *)data;
        char * param = get_keyparam(v, MAP);
 
-       return uev_add_map(param, vecs);
+       condlog(2, "%s: add map (operator)", param);
+
+       return ev_add_map(param, vecs);
 }
 
 int
@@ -68,7 +80,9 @@ cli_del_map (void * v, char ** reply, int * len, void * data)
        struct vectors * vecs = (struct vectors *)data;
        char * param = get_keyparam(v, MAP);
 
-       return uev_remove_map(param, vecs);
+       condlog(2, "%s: remove map (operator)", param);
+
+       return ev_remove_map(param, vecs);
 }
 
 int
@@ -77,6 +91,8 @@ cli_switch_group(void * v, char ** reply, int * len, void * data)
        char * mapname = get_keyparam(v, MAP);
        int groupnum = atoi(get_keyparam(v, GROUP));
        
+       condlog(2, "%s: switch to path group #%i (operator)", mapname, groupnum);
+
        return dm_switchgroup(mapname, groupnum);
 }
 
@@ -85,6 +101,8 @@ cli_dump_pathvec(void * v, char ** reply, int * len, void * data)
 {
        struct vectors * vecs = (struct vectors *)data;
                        
+       condlog(2, "dump pathvec (operator)");
+
        return dump_pathvec(reply, len, vecs);
 }
 
@@ -93,6 +111,8 @@ cli_reconfigure(void * v, char ** reply, int * len, void * data)
 {
        struct vectors * vecs = (struct vectors *)data;
                        
+       condlog(2, "reconfigure (operator)");
+
        return reconfigure(vecs);
 }
 
@@ -103,6 +123,8 @@ cli_suspend(void * v, char ** reply, int * len, void * data)
        char * param = get_keyparam(v, MAP);
        int r = dm_simplecmd(DM_DEVICE_SUSPEND, param);
 
+       condlog(2, "%s: suspend (operator)", param);
+
        if (!r) /* error */
                return 1;
        
@@ -122,6 +144,8 @@ cli_resume(void * v, char ** reply, int * len, void * data)
        char * param = get_keyparam(v, MAP);
        int r = dm_simplecmd(DM_DEVICE_RESUME, param);
 
+       condlog(2, "%s: resume (operator)", param);
+
        if (!r) /* error */
                return 1;
        
@@ -149,6 +173,9 @@ cli_reinstate(void * v, char ** reply, int * len, void * data)
        if (!pp || !pp->mpp || !pp->mpp->alias)
                return 1;
 
+       condlog(2, "%s: reinstate path %s (operator)",
+               pp->mpp->alias, pp->dev_t);
+
        return dm_reinstate_path(pp->mpp->alias, pp->dev_t);
 }
 
@@ -167,5 +194,8 @@ cli_fail(void * v, char ** reply, int * len, void * data)
        if (!pp || !pp->mpp || !pp->mpp->alias)
                return 1;
 
+       condlog(2, "%s: fail path %s (operator)",
+               pp->mpp->alias, pp->dev_t);
+
        return dm_fail_path(pp->mpp->alias, pp->dev_t);
 }
index 43624a4..fa7478a 100644 (file)
@@ -503,9 +503,16 @@ flush_map(struct multipath * mpp, struct vectors * vecs)
        return 0;
 }
 
-int
+static int
 uev_add_map (char * devname, struct vectors * vecs)
 {
+       condlog(2, "%s: add map (uevent)", devname);
+       return ev_add_map(devname, vecs);
+}
+
+int
+ev_add_map (char * devname, struct vectors * vecs)
+{
        int major, minor;
        char dev_t[BLK_DEV_SIZE];
        char * alias;
@@ -514,8 +521,6 @@ uev_add_map (char * devname, struct vectors * vecs)
        int map_present;
        int r = 1;
 
-       condlog(3, "%s: uev_add_map", devname);
-
        if (sscanf(devname, "dm-%d", &minor) == 1 &&
            !sysfs_get_dev(sysfs_path, devname, dev_t, BLK_DEV_SIZE) &&
            sscanf(dev_t, "%d:%d", &major, &minor) == 2)
@@ -542,7 +547,7 @@ uev_add_map (char * devname, struct vectors * vecs)
                 * if we create a multipath mapped device as a result
                 * of uev_add_path
                 */
-               condlog(0, "%s: spurious uevent, devmap already registered",
+               condlog(0, "%s: devmap already registered",
                        devname);
                FREE(alias);
                return 0;
@@ -564,23 +569,28 @@ uev_add_map (char * devname, struct vectors * vecs)
        }
        
        if (!r)
-               condlog(3, "%s devmap %s added", devname, alias);
+               condlog(3, "%s: devmap %s added", alias, devname);
        else
-               condlog(0, "%s: uev_add_map failed", alias);
+               condlog(0, "%s: uev_add_map %s failed", alias, devname);
 
        FREE(refwwid);
        FREE(alias);
        return r;
 }
 
-int
+static int
 uev_remove_map (char * devname, struct vectors * vecs)
 {
+       condlog(2, "%s: remove map (uevent)", devname);
+       return ev_remove_map(devname, vecs);
+}
+
+int
+ev_remove_map (char * devname, struct vectors * vecs)
+{
        int minor;
        struct multipath * mpp;
 
-       condlog(3, "%s: uev_remove_map", devname);
-
        if (sscanf(devname, "dm-%d", &minor) == 1)
                mpp = find_mp_by_minor(vecs->mpvec, minor);
        else
@@ -591,20 +601,18 @@ uev_remove_map (char * devname, struct vectors * vecs)
                        devname);
                return 0;
        }
-
-       condlog(2, "%s: remove devmap", mpp->alias);
        flush_map(mpp, vecs);
 
        return 0;
 }
 
-int
+static int
 uev_umount_map (char * devname, struct vectors * vecs)
 {
        int minor;
        struct multipath * mpp;
 
-       condlog(3, "%s: uev_umount_map", devname);
+       condlog(2, "%s: umount map (uevent)", devname);
 
        if (sscanf(devname, "dm-%d", &minor) == 1)
                mpp = find_mp_by_minor(vecs->mpvec, minor);
@@ -623,16 +631,22 @@ uev_umount_map (char * devname, struct vectors * vecs)
        return 0;
 }
        
-int
+static int
 uev_add_path (char * devname, struct vectors * vecs)
 {
+       condlog(2, "%s: add path (uevent)", devname);
+       return ev_add_path(devname, vecs);
+}
+
+int
+ev_add_path (char * devname, struct vectors * vecs)
+{
        struct multipath * mpp;
        struct path * pp;
        char empty_buff[WWID_SIZE] = {0};
 
-       condlog(3, "%s: uev_add_path", devname);
-
        pp = find_path_by_dev(vecs->pathvec, devname);
+
        if (pp) {
                condlog(0, "%s: spurious uevent, path already in pathvec, %p",
                        devname, pp->mpp);
@@ -724,17 +738,23 @@ out:
        return 1;
 }
 
-int
+static int
 uev_remove_path (char * devname, struct vectors * vecs)
 {
+       condlog(2, "%s: remove path (uevent)", devname);
+       return ev_remove_path(devname, vecs);
+}
+
+int
+ev_remove_path (char * devname, struct vectors * vecs)
+{
        struct multipath * mpp;
        struct path * pp;
        int i;
        int rm_path = 1;
 
-       condlog(3, "%s: uev_remove_path", devname);
-
        pp = find_path_by_dev(vecs->pathvec, devname);
+
        if (!pp) {
                condlog(0, "%s: spurious uevent, path not in pathvec", devname);
                return 1;
@@ -1444,8 +1464,6 @@ reconfigure (struct vectors * vecs)
 {
        struct config * old = conf;
 
-       condlog(0, "reconfigure");
-
        /*
         * free old map and path vectors ... they use old conf state
         */
@@ -1533,7 +1551,7 @@ signal_set(int signo, void (*func) (int))
 static void
 sighup (int sig)
 {
-       condlog(3, "SIGHUP received");
+       condlog(2, "reconfigure (SIGHUP)");
 
        lock(gvecs->lock);
        reconfigure(gvecs);
index d5fa4b5..a60dff7 100644 (file)
@@ -10,9 +10,9 @@ int reconfigure (struct vectors *);
 int show_paths (char **, int *, struct vectors *);
 int show_maps (char **, int *, struct vectors *);
 int dump_pathvec (char **, int *, struct vectors *);
-int uev_add_path (char *, struct vectors *);
-int uev_remove_path (char *, struct vectors *);
-int uev_add_map (char *, struct vectors *);
-int uev_remove_map (char *, struct vectors *);
+int ev_add_path (char *, struct vectors *);
+int ev_remove_path (char *, struct vectors *);
+int ev_add_map (char *, struct vectors *);
+int ev_remove_map (char *, struct vectors *);
 
 #endif /* MAIN_H */