goto_bad;
if (!dmeventd_lvm2_command(state->mem, state->cmd_lvscan, sizeof(state->cmd_lvscan),
- "lvscan --cache", device)) {
- dmeventd_lvm2_exit_with_pool(state);
+ "lvscan --cache", device))
goto_bad;
- }
if (!dmeventd_lvm2_command(state->mem, state->cmd_lvconvert, sizeof(state->cmd_lvconvert),
- "lvconvert --repair --use-policies", device)) {
- dmeventd_lvm2_exit_with_pool(state);
+ "lvconvert --repair --use-policies", device))
goto_bad;
- }
*user = state;
bad:
log_error("Failed to monitor mirror %s.", device);
+ if (state)
+ dmeventd_lvm2_exit_with_pool(state);
+
return 0;
}
"lvscan --cache", device) ||
!dmeventd_lvm2_command(state->mem, state->cmd_lvconvert, sizeof(state->cmd_lvconvert),
"lvconvert --config devices{ignore_suspended_devices=1} "
- "--repair --use-policies", device)) {
- dmeventd_lvm2_exit_with_pool(state);
+ "--repair --use-policies", device))
goto_bad;
- }
*user = state;
bad:
log_error("Failed to monitor RAID %s.", device);
+ if (state)
+ dmeventd_lvm2_exit_with_pool(state);
+
return 0;
}
if (!dmeventd_lvm2_command(state->mem, state->cmd_lvextend,
sizeof(state->cmd_lvextend),
- "lvextend --use-policies", device)) {
- dmeventd_lvm2_exit_with_pool(state);
+ "lvextend --use-policies", device))
goto_bad;
- }
state->percent_check = CHECK_MINIMUM;
*user = state;
bad:
log_error("Failed to monitor snapshot %s.", device);
+ if (state)
+ dmeventd_lvm2_exit_with_pool(state);
+
return 0;
}
goto_bad;
if (!dmeventd_lvm2_command(state->mem, cmd_str, sizeof(cmd_str),
- "_dmeventd_thin_command", device)) {
- dmeventd_lvm2_exit_with_pool(state);
+ "_dmeventd_thin_command", device))
goto_bad;
- }
if (strncmp(cmd_str, "lvm ", 4) == 0) {
if (!(state->cmd_str = dm_pool_strdup(state->mem, cmd_str + 4))) {
bad:
log_error("Failed to monitor thin pool %s.", device);
+ if (state)
+ dmeventd_lvm2_exit_with_pool(state);
+
return 0;
}