]> sourceware.org Git - lvm2.git/commitdiff
dmeventd: unify error handling
authorZdenek Kabelac <zkabelac@redhat.com>
Mon, 13 Feb 2017 18:00:59 +0000 (19:00 +0100)
committerZdenek Kabelac <zkabelac@redhat.com>
Mon, 13 Feb 2017 23:03:34 +0000 (00:03 +0100)
Always make sure the 'status' is release on 'error' path (thin pluging missed)
Make code looking same across all plugins.

daemons/dmeventd/plugins/mirror/dmeventd_mirror.c
daemons/dmeventd/plugins/raid/dmeventd_raid.c
daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c
daemons/dmeventd/plugins/thin/dmeventd_thin.c

index 3d3a6de02bf2687424bf4026087ea0e23aea9e9d..4ec348f5a35868d2de8b99edbb6c1c7b63ffd5e1 100644 (file)
@@ -184,16 +184,12 @@ int register_device(const char *device,
                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;
 
@@ -203,6 +199,9 @@ int register_device(const char *device,
 bad:
        log_error("Failed to monitor mirror %s.", device);
 
+       if (state)
+               dmeventd_lvm2_exit_with_pool(state);
+
        return 0;
 }
 
index 911ae7ad525068bf82c88a125256bf8af53e3613..ae3fc862b4782db4aa2a8f30a2fde92330fa3676 100644 (file)
@@ -140,10 +140,8 @@ int register_device(const char *device,
                                   "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;
 
@@ -153,6 +151,9 @@ int register_device(const char *device,
 bad:
        log_error("Failed to monitor RAID %s.", device);
 
+       if (state)
+               dmeventd_lvm2_exit_with_pool(state);
+
        return 0;
 }
 
index a70d07cfeff61be2f71f65dadb7b0f5bd32c15dc..bab7f0e37fc77e7ef999ae9dfd85b0eda8d25138 100644 (file)
@@ -254,10 +254,8 @@ int register_device(const char *device,
 
        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;
@@ -268,6 +266,9 @@ int register_device(const char *device,
 bad:
        log_error("Failed to monitor snapshot %s.", device);
 
+       if (state)
+               dmeventd_lvm2_exit_with_pool(state);
+
        return 0;
 }
 
index e447ba2859ac1a5dcf24ffd618340c754866d998..e7d24c58082b7d61bc6bd6d72ad1f29105255d76 100644 (file)
@@ -359,10 +359,8 @@ int register_device(const char *device,
                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))) {
@@ -401,6 +399,9 @@ inval:
 bad:
        log_error("Failed to monitor thin pool %s.", device);
 
+       if (state)
+               dmeventd_lvm2_exit_with_pool(state);
+
        return 0;
 }
 
This page took 0.043224 seconds and 5 git commands to generate.