From: Christophe Varoqui Date: Thu, 24 Nov 2005 16:43:53 +0000 (+0100) Subject: [multipathd] make clear in the logs what triggered an action X-Git-Tag: 0.4.7~98 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=428508e026254018d69164e2984b36a44f77f418;p=platform%2Fupstream%2Fmultipath-tools.git [multipathd] make clear in the logs what triggered an action 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 --- diff --git a/multipathd/cli_handlers.c b/multipathd/cli_handlers.c index d5b8474..59bafb6 100644 --- a/multipathd/cli_handlers.c +++ b/multipathd/cli_handlers.c @@ -10,6 +10,7 @@ #include #include #include +#include #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); } diff --git a/multipathd/main.c b/multipathd/main.c index 43624a4..fa7478a 100644 --- a/multipathd/main.c +++ b/multipathd/main.c @@ -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); diff --git a/multipathd/main.h b/multipathd/main.h index d5fa4b5..a60dff7 100644 --- a/multipathd/main.h +++ b/multipathd/main.h @@ -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 */