diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index 9f87854d2..dc315aca3 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -4714,8 +4714,8 @@ revert_new_lv: return NULL; } -int lv_create_single(struct volume_group *vg, - struct lvcreate_params *lp) +struct logical_volume *lv_create_single(struct volume_group *vg, + struct lvcreate_params *lp) { struct logical_volume *lv; @@ -4743,5 +4743,5 @@ int lv_create_single(struct volume_group *vg, out: log_print_unless_silent("Logical volume \"%s\" created", lv->name); - return 1; + return lv; } diff --git a/lib/metadata/metadata-exported.h b/lib/metadata/metadata-exported.h index b586936ac..ffec129b9 100644 --- a/lib/metadata/metadata-exported.h +++ b/lib/metadata/metadata-exported.h @@ -626,8 +626,8 @@ struct lvcreate_params { struct dm_list tags; /* all */ }; -int lv_create_single(struct volume_group *vg, - struct lvcreate_params *lp); +struct logical_volume *lv_create_single(struct volume_group *vg, + struct lvcreate_params *lp); /* * Functions for layer manipulation diff --git a/liblvm/lvm_lv.c b/liblvm/lvm_lv.c index d47a8578e..77bdebf73 100644 --- a/liblvm/lvm_lv.c +++ b/liblvm/lvm_lv.c @@ -146,7 +146,7 @@ lv_t lvm_vg_create_lv_linear(vg_t vg, const char *name, uint64_t size) { struct lvcreate_params lp = { 0 }; uint64_t extents; - struct lv_list *lvl; + struct logival_volume *lv; if (vg_read_error(vg)) return NULL; @@ -162,11 +162,9 @@ lv_t lvm_vg_create_lv_linear(vg_t vg, const char *name, uint64_t size) _lv_set_default_params(&lp, vg, name, extents); if (!_lv_set_default_linear_params(vg->cmd, &lp)) return_NULL; - if (!lv_create_single(vg, &lp)) + if (!(lv = lv_create_single(vg, &lp))) return_NULL; - if (!(lvl = find_lv_in_vg(vg, name))) - return NULL; - return (lv_t) lvl->lv; + return (lv_t) lv; } /*