1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

Add some backtraces for error paths in process_each_lv

This commit is contained in:
Zdenek Kabelac 2011-02-18 15:02:25 +00:00
parent 476ef1886f
commit 0a62e0145a
2 changed files with 14 additions and 4 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.85 -
===================================
Add stack backtraces for error paths in process_each_lv().
Fixing some const cast gcc warnings in the code.
Use char* arithmetic in _text_write(), _text_read() & send_message().
Fix compilation when devmapper is dissabled.

View File

@ -169,8 +169,10 @@ int process_each_lv_in_vg(struct cmd_context *cmd,
}
if (ret > ret_max)
ret_max = ret;
if (sigint_caught())
if (sigint_caught()) {
stack;
return ret_max;
}
}
if (lvargs_supplied && lvargs_matched != dm_list_size(arg_lvnames)) {
@ -253,8 +255,10 @@ int process_each_lv(struct cmd_context *cmd, int argc, char **argv,
while (*lv_name == '/')
lv_name++;
if (!(vgname = extract_vgname(cmd, vgname))) {
if (ret_max < ECMD_FAILED)
if (ret_max < ECMD_FAILED) {
stack;
ret_max = ECMD_FAILED;
}
continue;
}
} else if (!dev_dir_found &&
@ -348,8 +352,10 @@ int process_each_lv(struct cmd_context *cmd, int argc, char **argv,
tags_arg, &failed_lvnames,
handle, process_single_lv);
if (ret != ECMD_PROCESSED ||
dm_list_empty(&failed_lvnames))
dm_list_empty(&failed_lvnames)) {
stack;
break;
}
/* Try again with failed LVs in this VG */
dm_list_init(&lvnames);
@ -357,6 +363,7 @@ int process_each_lv(struct cmd_context *cmd, int argc, char **argv,
free_cmd_vgs(&cmd_vgs);
if (!cmd_vg_read(cmd, &cmd_vgs)) {
stack;
ret = ECMD_FAILED; /* break */
break;
}
@ -366,8 +373,10 @@ int process_each_lv(struct cmd_context *cmd, int argc, char **argv,
free_cmd_vgs(&cmd_vgs);
/* FIXME: logic for breaking command is not consistent */
if (sigint_caught())
if (sigint_caught()) {
stack;
return ECMD_FAILED;
}
}
return ret_max;