diff options
author | Ondrej Kozina <okozina@redhat.com> | 2015-04-21 15:29:50 +0200 |
---|---|---|
committer | Ondrej Kozina <okozina@redhat.com> | 2015-05-07 15:50:29 +0200 |
commit | 2312bac7fd28412b299449a53bb05b2ca142e6e7 (patch) | |
tree | f342b07f218d56f474d5a72b02509246714b551e | |
parent | 416e712023cd4a783c42abb95ebd24f8cad20cc6 (diff) | |
download | lvm2-2312bac7fd28412b299449a53bb05b2ca142e6e7.tar.gz |
lvmpolld: track poll/abort init requests count per LV
-rw-r--r-- | daemons/lvmpolld/lvmpolld-core.c | 1 | ||||
-rw-r--r-- | daemons/lvmpolld/lvmpolld-data-utils.c | 5 | ||||
-rw-r--r-- | daemons/lvmpolld/lvmpolld-data-utils.h | 1 |
3 files changed, 6 insertions, 1 deletions
diff --git a/daemons/lvmpolld/lvmpolld-core.c b/daemons/lvmpolld/lvmpolld-core.c index df0888ac0..693d80667 100644 --- a/daemons/lvmpolld/lvmpolld-core.c +++ b/daemons/lvmpolld/lvmpolld-core.c @@ -665,6 +665,7 @@ static response poll_init(client_handle h, lvmpolld_state_t *ls, request req, en return reply(LVMPD_RESP_EINVAL, REASON_DIFFERENT_OPERATION_IN_PROGRESS); } + pdlv->init_rq_count++; /* safe. protected by store lock */ } else { pdlv = construct_pdlv(req, ls, pdst, interval, id, vgname, lvname, sysdir, type, abort, uinterval); diff --git a/daemons/lvmpolld/lvmpolld-data-utils.c b/daemons/lvmpolld/lvmpolld-data-utils.c index 111946029..a5385d137 100644 --- a/daemons/lvmpolld/lvmpolld-data-utils.c +++ b/daemons/lvmpolld/lvmpolld-data-utils.c @@ -111,7 +111,8 @@ lvmpolld_lv_t *pdlv_create(lvmpolld_state_t *ls, const char *id, .sinterval = dm_strdup(sinterval), /* copy */ .pdtimeout = pdtimeout ?: PDTIMEOUT_DEF, .cmd_state = { .retcode = -1, .signal = 0 }, - .pdst = pdst + .pdst = pdst, + .init_rq_count = 1 }, *pdlv = (lvmpolld_lv_t *) dm_malloc(sizeof(lvmpolld_lv_t)); if (!pdlv || !tmp.lvid || !tmp.lvname || !tmp.lvm_system_dir_env || !tmp.sinterval) @@ -270,6 +271,8 @@ static void _pdlv_locked_dump(struct buffer *buff, const lvmpolld_lv_t *pdlv) buffer_append(buff, tmp); if (dm_snprintf(tmp, sizeof(tmp), "\t\terror_occured=%d\n", pdlv->error) > 0) buffer_append(buff, tmp); + if (dm_snprintf(tmp, sizeof(tmp), "\t\tinit_requests_count=%d\n", pdlv->init_rq_count) > 0) + buffer_append(buff, tmp); /* lvm_commmand-section { */ buffer_append(buff, "\t\tlvm_command {\n"); diff --git a/daemons/lvmpolld/lvmpolld-data-utils.h b/daemons/lvmpolld/lvmpolld-data-utils.h index b99f1b3f9..d8a9ae4e3 100644 --- a/daemons/lvmpolld/lvmpolld-data-utils.h +++ b/daemons/lvmpolld/lvmpolld-data-utils.h @@ -78,6 +78,7 @@ typedef struct lvmpolld_lv { /* block of shared variables protected by lock */ lvmpolld_cmd_stat_t cmd_state; + unsigned init_rq_count; /* for debuging purposes only */ unsigned polling_finished:1; /* no more updates */ unsigned error:1; /* unrecoverable error occured in lvmpolld */ } lvmpolld_lv_t; |