summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2017-01-23 14:23:24 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2017-01-23 14:55:47 +0100
commit836eb122cec35c1f00281968d92f9d85e67652d7 (patch)
treec278b64cc3fc4d595c116eb51b5900ecf7a377b4
parent4a7f2155c1d6bd5df1226632c5c5d5631c5abc97 (diff)
downloadlvm2-836eb122cec35c1f00281968d92f9d85e67652d7.tar.gz
dmeventd_thind: set LVM_RUN_BY_DMEVENTD
Set LVM_RUN_BY_DMEVENTD envvar to expose the command is runing from dmeventd environment.
-rw-r--r--daemons/dmeventd/plugins/thin/dmeventd_thin.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/daemons/dmeventd/plugins/thin/dmeventd_thin.c b/daemons/dmeventd/plugins/thin/dmeventd_thin.c
index a6a534daf..f5519712b 100644
--- a/daemons/dmeventd/plugins/thin/dmeventd_thin.c
+++ b/daemons/dmeventd/plugins/thin/dmeventd_thin.c
@@ -69,19 +69,23 @@ DM_EVENT_LOG_FN("thin")
static int _run_command(struct dso_state *state)
{
- char val[2][36];
- char *env[] = { val[0], val[1], NULL };
+ char val[3][36];
+ char *env[] = { val[0], val[1], val[2], NULL };
int i;
+ /* Mark for possible lvm2 command we are running from dmeventd
+ * lvm2 will not try to talk back to dmeventd while processing it */
+ (void) dm_snprintf(val[0], sizeof(val[0]), "LVM_RUN_BY_DMEVENTD=1");
+
if (state->data_percent) {
/* Prepare some known data to env vars for easy use */
- (void) dm_snprintf(val[0], sizeof(val[0]), "DMEVENTD_THIN_POOL_DATA=%d",
+ (void) dm_snprintf(val[1], sizeof(val[1]), "DMEVENTD_THIN_POOL_DATA=%d",
state->data_percent / DM_PERCENT_1);
- (void) dm_snprintf(val[1], sizeof(val[1]), "DMEVENTD_THIN_POOL_METADATA=%d",
+ (void) dm_snprintf(val[2], sizeof(val[2]), "DMEVENTD_THIN_POOL_METADATA=%d",
state->metadata_percent / DM_PERCENT_1);
} else {
/* For an error event it's for a user to check status and decide */
- env[0] = NULL;
+ env[1] = NULL;
log_debug("Error event processing");
}