summaryrefslogtreecommitdiff
path: root/managemon.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2014-07-10 15:54:02 +1000
committerNeilBrown <neilb@suse.de>2014-07-10 15:54:02 +1000
commit5fe6f031d9a21a935f0ef1b1fbdb314b53f2199f (patch)
tree44f8fd5707a7a7ca7cde9a4abb1cf49c14e88466 /managemon.c
parent0c21b485e4beb7bcfe631412a231f7c1ea1067bc (diff)
downloadmdadm-5fe6f031d9a21a935f0ef1b1fbdb314b53f2199f.tar.gz
mdmon: allow prepare_update to report failure.
If 'prepare_update' fails for some reason there is little point continuing on to 'process_update'. For now only malloc failures are caught, but other failures will be considered in future. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'managemon.c')
-rw-r--r--managemon.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/managemon.c b/managemon.c
index 5f7e2ce..1c9eccc 100644
--- a/managemon.c
+++ b/managemon.c
@@ -819,7 +819,8 @@ static void handle_message(struct supertype *container, struct metadata_update *
mu->space_list = NULL;
mu->next = NULL;
if (container->ss->prepare_update)
- container->ss->prepare_update(container, mu);
+ if (!container->ss->prepare_update(container, mu))
+ free_updates(&mu);
queue_metadata_update(mu);
}
}