1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

remote_driver: Refactor few functions as example of auto-locking

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
Peter Krempa 2022-02-25 15:45:10 +01:00
parent 8d7e3a723d
commit 08406591ce

View File

@ -7978,12 +7978,10 @@ remoteStorageVolGetInfoFlags(virStorageVolPtr vol,
virStorageVolInfoPtr result, virStorageVolInfoPtr result,
unsigned int flags) unsigned int flags)
{ {
int rv = -1;
struct private_data *priv = vol->conn->privateData; struct private_data *priv = vol->conn->privateData;
remote_storage_vol_get_info_flags_args args; remote_storage_vol_get_info_flags_args args;
remote_storage_vol_get_info_flags_ret ret; remote_storage_vol_get_info_flags_ret ret;
VIR_LOCK_GUARD lock = remoteDriverLock(priv);
remoteDriverLock(priv);
make_nonnull_storage_vol(&args.vol, vol); make_nonnull_storage_vol(&args.vol, vol);
args.flags = flags; args.flags = flags;
@ -7994,18 +7992,14 @@ remoteStorageVolGetInfoFlags(virStorageVolPtr vol,
(xdrproc_t)xdr_remote_storage_vol_get_info_flags_args, (xdrproc_t)xdr_remote_storage_vol_get_info_flags_args,
(char *)&args, (char *)&args,
(xdrproc_t)xdr_remote_storage_vol_get_info_flags_ret, (xdrproc_t)xdr_remote_storage_vol_get_info_flags_ret,
(char *)&ret) == -1) { (char *)&ret) == -1)
goto done; return -1;
}
result->type = ret.type; result->type = ret.type;
result->capacity = ret.capacity; result->capacity = ret.capacity;
result->allocation = ret.allocation; result->allocation = ret.allocation;
rv = 0;
done: return 0;
remoteDriverUnlock(priv);
return rv;
} }
@ -8143,17 +8137,15 @@ remoteDomainAuthorizedSSHKeysSet(virDomainPtr domain,
unsigned int nkeys, unsigned int nkeys,
unsigned int flags) unsigned int flags)
{ {
int rv = -1;
struct private_data *priv = domain->conn->privateData; struct private_data *priv = domain->conn->privateData;
remote_domain_authorized_ssh_keys_set_args args; remote_domain_authorized_ssh_keys_set_args args;
VIR_LOCK_GUARD lock = remoteDriverLock(priv);
remoteDriverLock(priv);
if (nkeys > REMOTE_DOMAIN_AUTHORIZED_SSH_KEYS_MAX) { if (nkeys > REMOTE_DOMAIN_AUTHORIZED_SSH_KEYS_MAX) {
virReportError(VIR_ERR_RPC, "%s", virReportError(VIR_ERR_RPC, "%s",
_("remoteDomainAuthorizedSSHKeysSet: " _("remoteDomainAuthorizedSSHKeysSet: "
"returned number of keys exceeds limit")); "returned number of keys exceeds limit"));
goto cleanup; return -1;
} }
make_nonnull_domain(&args.dom, domain); make_nonnull_domain(&args.dom, domain);
@ -8164,15 +8156,10 @@ remoteDomainAuthorizedSSHKeysSet(virDomainPtr domain,
if (call(domain->conn, priv, 0, REMOTE_PROC_DOMAIN_AUTHORIZED_SSH_KEYS_SET, if (call(domain->conn, priv, 0, REMOTE_PROC_DOMAIN_AUTHORIZED_SSH_KEYS_SET,
(xdrproc_t) xdr_remote_domain_authorized_ssh_keys_set_args, (char *)&args, (xdrproc_t) xdr_remote_domain_authorized_ssh_keys_set_args, (char *)&args,
(xdrproc_t) xdr_void, (char *) NULL) == -1) { (xdrproc_t) xdr_void, (char *) NULL) == -1)
goto cleanup; return -1;
}
rv = 0; return 0;
cleanup:
remoteDriverUnlock(priv);
return rv;
} }