[lvm-devel] [PATCH 1/2] lvm2app: Add function to retrieve the origin.

Zdenek Kabelac zkabelac at redhat.com
Fri Apr 12 08:22:06 UTC 2013


Dne 11.4.2013 22:58, Tony Asleson napsal(a):
> Signed-off-by: Tony Asleson <tasleson at redhat.com>
> ---
>   liblvm/lvm2app.h | 16 ++++++++++++++++
>   liblvm/lvm_lv.c  |  5 +++++
>   2 files changed, 21 insertions(+)
>
> diff --git a/liblvm/lvm2app.h b/liblvm/lvm2app.h
> index 15827ac..369c300 100644
> --- a/liblvm/lvm2app.h
> +++ b/liblvm/lvm2app.h
> @@ -1223,6 +1223,22 @@ const char *lvm_lv_get_name(const lv_t lv);
>   const char *lvm_lv_get_attr(const lv_t lv);
>
>   /**
> + * Get the origin of a snapshot.
> + *
> + * \memberof lv_t
> + *
> + * The memory allocated for the name is tied to the vg_t handle and will be
> + * released when lvm_vg_close() is called.
> + *
> + * \param   lv
> + * Logical volume handle.
> + *
> + * \return
> + * Null if the logical volume is not a snapshot, else origin name.
> + */
> +const char *lvm_lv_get_origin(const lv_t lv);
> +
> +/**
>    * Get the current size in bytes of a logical volume.
>    *
>    * \memberof lv_t
> diff --git a/liblvm/lvm_lv.c b/liblvm/lvm_lv.c
> index 9d3ae79..f244a60 100644
> --- a/liblvm/lvm_lv.c
> +++ b/liblvm/lvm_lv.c
> @@ -53,6 +53,11 @@ const char *lvm_lv_get_attr(const lv_t lv)
>   	return lv_attr_dup(lv->vg->vgmem, lv);
>   }
>
> +const char *lvm_lv_get_origin(const lv_t lv)
> +{
> +	return lv_origin_dup(lv->vg->vgmem, lv);
> +}
> +

If you need just 'const' pointer - it would be probably better,
to directly return the name - instead of duplication.

i.e. lv_origin_dup() ->  rewrite to  'const char *lv_get_origin(.)' ->
and use it for  lv_name_dup() in lv_origin_dup() which returns char *.
as well as for  lvm_lv_get_origin().



>   struct lvm_property_value lvm_lv_get_property(const lv_t lv, const char *name)
>   {
>   	return get_property(NULL, NULL, lv, NULL, NULL, name);
>


Zdenek




More information about the lvm-devel mailing list