diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2014-10-22 13:38:47 +0200 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2014-10-24 16:39:32 +0200 |
commit | 21798418fc81a232d00e5a93ce4071004e6f0fed (patch) | |
tree | dbbde8b32e9e5f38683ba4a36c58cae8a4a96f30 | |
parent | a330640063fed88616379e3c2e4e85b8e2e355b0 (diff) | |
download | lvm2-21798418fc81a232d00e5a93ce4071004e6f0fed.tar.gz |
cleanup: better stack tracing
Show proper backtrace on error path.
-rw-r--r-- | lib/metadata/lv_manip.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index fe0eead38..5125412fb 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -7113,16 +7113,20 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg, } /* A virtual origin must be activated explicitly. */ - if (lp->voriginsize && - (!(origin_lv = _create_virtual_origin(cmd, vg, lv->name, - lp->permission, - lp->voriginextents)) || - !activate_lv_excl(cmd, origin_lv))) { - log_error("Couldn't create virtual origin for LV %s", - lv->name); - if (origin_lv && !lv_remove(origin_lv)) + if (lp->voriginsize) { + if (!(origin_lv = _create_virtual_origin(cmd, vg, lv->name, + lp->permission, + lp->voriginextents))) { stack; - goto deactivate_and_revert_new_lv; + goto deactivate_and_revert_new_lv; + } + if (!activate_lv_excl(cmd, origin_lv)) { + log_error("Couldn't get exclusive lock for virtual origin LV %s", + lv->name); + if (!lv_remove(origin_lv)) + stack; + goto deactivate_and_revert_new_lv; + } } /* |