[libvirt] [PATCH v1 12/23] virtlockd: Work virSeclabelSpace in

Peter Krempa pkrempa at redhat.com
Fri Oct 16 07:32:46 UTC 2015


On Mon, Oct 12, 2015 at 12:25:57 +0200, Michal Privoznik wrote:

A rather sparse commit message.

> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  src/locking/lock_daemon.c          | 44 ++++++++++++++++++++++++++
>  src/locking/lock_daemon.h          |  8 +++++
>  src/locking/lock_daemon_dispatch.c | 65 ++++++++++++++++++++++++++++++++------
>  3 files changed, 108 insertions(+), 9 deletions(-)

[...]

> diff --git a/src/locking/lock_daemon_dispatch.c b/src/locking/lock_daemon_dispatch.c
> index 2d0bd81..5ad7e11 100644
> --- a/src/locking/lock_daemon_dispatch.c
> +++ b/src/locking/lock_daemon_dispatch.c

[...]

> @@ -433,21 +435,66 @@ virLockSpaceProtocolDispatchCreateLockSpace(virNetServerPtr server ATTRIBUTE_UNU

[...]

>  static int
>  virLockSpaceProtocolDispatchRecallSeclabel(virNetServerPtr server ATTRIBUTE_UNUSED,
> -                                           virNetServerClientPtr client ATTRIBUTE_UNUSED,
> +                                           virNetServerClientPtr client,
>                                             virNetMessagePtr msg ATTRIBUTE_UNUSED,
> -                                           virNetMessageErrorPtr rerr ATTRIBUTE_UNUSED,
> -                                           virLockSpaceProtocolRecallSeclabelArgs *args ATTRIBUTE_UNUSED,
> -                                           virLockSpaceProtocolRecallSeclabelRet *ret ATTRIBUTE_UNUSED)
> +                                           virNetMessageErrorPtr rerr,
> +                                           virLockSpaceProtocolRecallSeclabelArgs *args,
> +                                           virLockSpaceProtocolRecallSeclabelRet *ret)
>  {
> -    return 0;
> +    int rv = -1;
> +    int funcRet;
> +    virLockDaemonClientPtr priv =
> +        virNetServerClientGetPrivateData(client);
> +    char *label = NULL;
> +    char **label_p = NULL;
> +
> +    virMutexLock(&priv->lock);
> +
> +    memset(ret, 0, sizeof(*ret));
> +
> +    funcRet = virLockDaemonRecallSeclabel(lockDaemon,
> +                                          args->path, args->model, &label);
> +
> +    if (funcRet == 0 &&
> +        (VIR_ALLOC(label_p) < 0 ||
> +         VIR_STRDUP(*label_p, label) < 0))

This looks rather weird? Why is the extra pointer necessary?

> +        goto cleanup;
> +
> +    ret->label = label_p;
> +    ret->ret = funcRet;
> +    rv = 0;

Peter
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20151016/6f9a73e2/attachment-0001.sig>


More information about the libvir-list mailing list