summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2015-10-13 11:30:37 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2015-10-13 15:56:03 +0200
commita11cd2ca2d4edbf16c61f8066b1f745fa2fe7d4b (patch)
tree28321445421533ebdd77c82b4761e731df4fd8f3
parentf9926e7e6c102319575c186e8eef0012cb9c36cc (diff)
downloadlvm2-a11cd2ca2d4edbf16c61f8066b1f745fa2fe7d4b.tar.gz
dmeventd: use new macros to init mempool
For thin and snapshot use new macros to simplify mempool init and destroy
-rw-r--r--daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c33
-rw-r--r--daemons/dmeventd/plugins/thin/dmeventd_thin.c19
2 files changed, 18 insertions, 34 deletions
diff --git a/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c b/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c
index 8d5bce182..56fb7c268 100644
--- a/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c
+++ b/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c
@@ -32,7 +32,7 @@ struct dso_state {
struct dm_pool *mem;
int percent_check;
uint64_t known_size;
- char cmd_str[1024];
+ char cmd_lvextend[512];
};
DM_EVENT_LOG_FN("snap")
@@ -184,11 +184,11 @@ void process_event(struct dm_task *dmt,
if (percent >= WARNING_THRESH) /* Print a warning to syslog. */
log_warn("WARNING: Snapshot %s is now %i%% full.", device, percent);
+
/* Try to extend the snapshot, in accord with user-set policies */
- if (!_extend(state->cmd_str))
+ if (!_extend(state->cmd_lvextend))
log_error("Failed to extend snapshot %s.", device);
}
-
out:
if (status)
dm_pool_free(state->mem, status);
@@ -201,22 +201,18 @@ int register_device(const char *device,
int minor __attribute__((unused)),
void **user)
{
- struct dm_pool *statemem = NULL;
struct dso_state *state;
- if (!dmeventd_lvm2_init())
- goto out;
-
- if (!(statemem = dm_pool_create("snapshot_state", 512)) ||
- !(state = dm_pool_zalloc(statemem, sizeof(*state))))
- goto bad;
+ if (dmeventd_lvm2_init_with_pool("snapshot_state", state))
+ goto_bad;
- if (!dmeventd_lvm2_command(statemem, state->cmd_str,
- sizeof(state->cmd_str),
- "lvextend --use-policies", device))
- goto bad;
+ if (!dmeventd_lvm2_command(state->mem, state->cmd_lvextend,
+ sizeof(state->cmd_lvextend),
+ "lvextend --use-policies", device)) {
+ dmeventd_lvm2_exit_with_pool(state);
+ goto_bad;
+ }
- state->mem = statemem;
state->percent_check = CHECK_MINIMUM;
*user = state;
@@ -224,10 +220,6 @@ int register_device(const char *device,
return 1;
bad:
- if (statemem)
- dm_pool_destroy(statemem);
- dmeventd_lvm2_exit();
-out:
log_error("Failed to monitor snapshot %s.", device);
return 0;
@@ -241,9 +233,8 @@ int unregister_device(const char *device,
{
struct dso_state *state = *user;
+ dmeventd_lvm2_exit_with_pool(state);
log_info("No longer monitoring snapshot %s.", device);
- dm_pool_destroy(state->mem);
- dmeventd_lvm2_exit();
return 1;
}
diff --git a/daemons/dmeventd/plugins/thin/dmeventd_thin.c b/daemons/dmeventd/plugins/thin/dmeventd_thin.c
index d21e65bca..15af254c0 100644
--- a/daemons/dmeventd/plugins/thin/dmeventd_thin.c
+++ b/daemons/dmeventd/plugins/thin/dmeventd_thin.c
@@ -351,25 +351,19 @@ int register_device(const char *device,
int minor __attribute__((unused)),
void **user)
{
- struct dm_pool *statemem = NULL;
struct dso_state *state;
- if (!dmeventd_lvm2_init())
- goto bad;
+ if (!dmeventd_lvm2_init_with_pool("thin_pool_state", state))
+ goto_bad;
- if (!(statemem = dm_pool_create("thin_pool_state", 2048)) ||
- !(state = dm_pool_zalloc(statemem, sizeof(*state))) ||
- !dmeventd_lvm2_command(statemem, state->cmd_str,
+ if (!dmeventd_lvm2_command(state->mem, state->cmd_str,
sizeof(state->cmd_str),
"lvextend --use-policies",
device)) {
- if (statemem)
- dm_pool_destroy(statemem);
- dmeventd_lvm2_exit();
- goto bad;
+ dmeventd_lvm2_exit_with_pool(state);
+ goto_bad;
}
- state->mem = statemem;
state->metadata_percent_check = CHECK_MINIMUM;
state->data_percent_check = CHECK_MINIMUM;
*user = state;
@@ -391,9 +385,8 @@ int unregister_device(const char *device,
{
struct dso_state *state = *user;
+ dmeventd_lvm2_exit_with_pool(state);
log_info("No longer monitoring thin %s.", device);
- dm_pool_destroy(state->mem);
- dmeventd_lvm2_exit();
return 1;
}