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

security_manager: Use automatic mutex management

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Tim Wiederhake 2022-04-04 10:56:21 +02:00
parent 122efa6a07
commit c8f5b33631

View File

@ -254,13 +254,12 @@ virSecurityManagerPostFork(virSecurityManager *mgr)
int int
virSecurityManagerTransactionStart(virSecurityManager *mgr) virSecurityManagerTransactionStart(virSecurityManager *mgr)
{ {
int ret = 0; VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
virObjectLock(mgr); if (!mgr->drv->transactionStart)
if (mgr->drv->transactionStart) return 0;
ret = mgr->drv->transactionStart(mgr);
virObjectUnlock(mgr); return mgr->drv->transactionStart(mgr);
return ret;
} }
@ -291,13 +290,12 @@ virSecurityManagerTransactionCommit(virSecurityManager *mgr,
pid_t pid, pid_t pid,
bool lock) bool lock)
{ {
int ret = 0; VIR_LOCK_GUARD lockguard = virObjectLockGuard(mgr);
virObjectLock(mgr); if (!mgr->drv->transactionCommit)
if (mgr->drv->transactionCommit) return 0;
ret = mgr->drv->transactionCommit(mgr, pid, lock);
virObjectUnlock(mgr); return mgr->drv->transactionCommit(mgr, pid, lock);
return ret;
} }
@ -310,10 +308,10 @@ virSecurityManagerTransactionCommit(virSecurityManager *mgr,
void void
virSecurityManagerTransactionAbort(virSecurityManager *mgr) virSecurityManagerTransactionAbort(virSecurityManager *mgr)
{ {
virObjectLock(mgr); VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
if (mgr->drv->transactionAbort) if (mgr->drv->transactionAbort)
mgr->drv->transactionAbort(mgr); mgr->drv->transactionAbort(mgr);
virObjectUnlock(mgr);
} }
@ -341,32 +339,28 @@ virSecurityManagerGetDriver(virSecurityManager *mgr)
const char * const char *
virSecurityManagerGetDOI(virSecurityManager *mgr) virSecurityManagerGetDOI(virSecurityManager *mgr)
{ {
if (mgr->drv->getDOI) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
const char *ret;
virObjectLock(mgr);
ret = mgr->drv->getDOI(mgr);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->getDOI) {
virReportUnsupportedError(); virReportUnsupportedError();
return NULL; return NULL;
}
return mgr->drv->getDOI(mgr);
} }
const char * const char *
virSecurityManagerGetModel(virSecurityManager *mgr) virSecurityManagerGetModel(virSecurityManager *mgr)
{ {
if (mgr->drv->getModel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
const char *ret;
virObjectLock(mgr);
ret = mgr->drv->getModel(mgr);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->getModel) {
virReportUnsupportedError(); virReportUnsupportedError();
return NULL; return NULL;
}
return mgr->drv->getModel(mgr);
} }
@ -375,15 +369,12 @@ const char *
virSecurityManagerGetBaseLabel(virSecurityManager *mgr, virSecurityManagerGetBaseLabel(virSecurityManager *mgr,
int virtType) int virtType)
{ {
if (mgr->drv->getBaseLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
const char *ret;
virObjectLock(mgr);
ret = mgr->drv->getBaseLabel(mgr, virtType);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->getBaseLabel)
return NULL; return NULL;
return mgr->drv->getBaseLabel(mgr, virtType);
} }
@ -425,16 +416,14 @@ virSecurityManagerRestoreImageLabel(virSecurityManager *mgr,
virStorageSource *src, virStorageSource *src,
virSecurityDomainImageLabelFlags flags) virSecurityDomainImageLabelFlags flags)
{ {
if (mgr->drv->domainRestoreSecurityImageLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainRestoreSecurityImageLabel(mgr, vm, src, flags);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainRestoreSecurityImageLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainRestoreSecurityImageLabel(mgr, vm, src, flags);
} }
@ -464,15 +453,12 @@ virSecurityManagerMoveImageMetadata(virSecurityManager *mgr,
virStorageSource *src, virStorageSource *src,
virStorageSource *dst) virStorageSource *dst)
{ {
if (mgr->drv->domainMoveImageMetadata) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainMoveImageMetadata(mgr, pid, src, dst);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainMoveImageMetadata)
return 0; return 0;
return mgr->drv->domainMoveImageMetadata(mgr, pid, src, dst);
} }
@ -480,16 +466,14 @@ int
virSecurityManagerSetDaemonSocketLabel(virSecurityManager *mgr, virSecurityManagerSetDaemonSocketLabel(virSecurityManager *mgr,
virDomainDef *vm) virDomainDef *vm)
{ {
if (mgr->drv->domainSetSecurityDaemonSocketLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetSecurityDaemonSocketLabel(mgr, vm);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSecurityDaemonSocketLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainSetSecurityDaemonSocketLabel(mgr, vm);
} }
@ -497,16 +481,14 @@ int
virSecurityManagerSetSocketLabel(virSecurityManager *mgr, virSecurityManagerSetSocketLabel(virSecurityManager *mgr,
virDomainDef *vm) virDomainDef *vm)
{ {
if (mgr->drv->domainSetSecuritySocketLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetSecuritySocketLabel(mgr, vm);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSecuritySocketLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainSetSecuritySocketLabel(mgr, vm);
} }
@ -514,16 +496,14 @@ int
virSecurityManagerClearSocketLabel(virSecurityManager *mgr, virSecurityManagerClearSocketLabel(virSecurityManager *mgr,
virDomainDef *vm) virDomainDef *vm)
{ {
if (mgr->drv->domainClearSecuritySocketLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainClearSecuritySocketLabel(mgr, vm);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainClearSecuritySocketLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainClearSecuritySocketLabel(mgr, vm);
} }
@ -544,16 +524,14 @@ virSecurityManagerSetImageLabel(virSecurityManager *mgr,
virStorageSource *src, virStorageSource *src,
virSecurityDomainImageLabelFlags flags) virSecurityDomainImageLabelFlags flags)
{ {
if (mgr->drv->domainSetSecurityImageLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetSecurityImageLabel(mgr, vm, src, flags);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSecurityImageLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainSetSecurityImageLabel(mgr, vm, src, flags);
} }
@ -563,16 +541,14 @@ virSecurityManagerRestoreHostdevLabel(virSecurityManager *mgr,
virDomainHostdevDef *dev, virDomainHostdevDef *dev,
const char *vroot) const char *vroot)
{ {
if (mgr->drv->domainRestoreSecurityHostdevLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainRestoreSecurityHostdevLabel(mgr, vm, dev, vroot);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainRestoreSecurityHostdevLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainRestoreSecurityHostdevLabel(mgr, vm, dev, vroot);
} }
@ -582,16 +558,14 @@ virSecurityManagerSetHostdevLabel(virSecurityManager *mgr,
virDomainHostdevDef *dev, virDomainHostdevDef *dev,
const char *vroot) const char *vroot)
{ {
if (mgr->drv->domainSetSecurityHostdevLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetSecurityHostdevLabel(mgr, vm, dev, vroot);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSecurityHostdevLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainSetSecurityHostdevLabel(mgr, vm, dev, vroot);
} }
@ -600,15 +574,12 @@ virSecurityManagerSetSavedStateLabel(virSecurityManager *mgr,
virDomainDef *vm, virDomainDef *vm,
const char *savefile) const char *savefile)
{ {
if (mgr->drv->domainSetSavedStateLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetSavedStateLabel(mgr, vm, savefile);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSavedStateLabel)
return 0; return 0;
return mgr->drv->domainSetSavedStateLabel(mgr, vm, savefile);
} }
@ -617,15 +588,12 @@ virSecurityManagerRestoreSavedStateLabel(virSecurityManager *mgr,
virDomainDef *vm, virDomainDef *vm,
const char *savefile) const char *savefile)
{ {
if (mgr->drv->domainRestoreSavedStateLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainRestoreSavedStateLabel(mgr, vm, savefile);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainRestoreSavedStateLabel)
return 0; return 0;
return mgr->drv->domainRestoreSavedStateLabel(mgr, vm, savefile);
} }
@ -713,16 +681,14 @@ virSecurityManagerReserveLabel(virSecurityManager *mgr,
virDomainDef *vm, virDomainDef *vm,
pid_t pid) pid_t pid)
{ {
if (mgr->drv->domainReserveSecurityLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainReserveSecurityLabel(mgr, vm, pid);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainReserveSecurityLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainReserveSecurityLabel(mgr, vm, pid);
} }
@ -730,16 +696,14 @@ int
virSecurityManagerReleaseLabel(virSecurityManager *mgr, virSecurityManagerReleaseLabel(virSecurityManager *mgr,
virDomainDef *vm) virDomainDef *vm)
{ {
if (mgr->drv->domainReleaseSecurityLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainReleaseSecurityLabel(mgr, vm);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainReleaseSecurityLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainReleaseSecurityLabel(mgr, vm);
} }
@ -857,18 +821,15 @@ virSecurityManagerSetAllLabel(virSecurityManager *mgr,
bool chardevStdioLogd, bool chardevStdioLogd,
bool migrated) bool migrated)
{ {
if (mgr->drv->domainSetSecurityAllLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetSecurityAllLabel(mgr, vm, incomingPath,
chardevStdioLogd,
migrated);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSecurityAllLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainSetSecurityAllLabel(mgr, vm, incomingPath,
chardevStdioLogd, migrated);
} }
@ -878,17 +839,15 @@ virSecurityManagerRestoreAllLabel(virSecurityManager *mgr,
bool migrated, bool migrated,
bool chardevStdioLogd) bool chardevStdioLogd)
{ {
if (mgr->drv->domainRestoreSecurityAllLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainRestoreSecurityAllLabel(mgr, vm, migrated,
chardevStdioLogd);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainRestoreSecurityAllLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainRestoreSecurityAllLabel(mgr, vm, migrated,
chardevStdioLogd);
} }
int int
@ -897,16 +856,14 @@ virSecurityManagerGetProcessLabel(virSecurityManager *mgr,
pid_t pid, pid_t pid,
virSecurityLabelPtr sec) virSecurityLabelPtr sec)
{ {
if (mgr->drv->domainGetSecurityProcessLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainGetSecurityProcessLabel(mgr, vm, pid, sec);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainGetSecurityProcessLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainGetSecurityProcessLabel(mgr, vm, pid, sec);
} }
@ -914,16 +871,14 @@ int
virSecurityManagerSetProcessLabel(virSecurityManager *mgr, virSecurityManagerSetProcessLabel(virSecurityManager *mgr,
virDomainDef *vm) virDomainDef *vm)
{ {
if (mgr->drv->domainSetSecurityProcessLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetSecurityProcessLabel(mgr, vm);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSecurityProcessLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainSetSecurityProcessLabel(mgr, vm);
} }
@ -957,12 +912,10 @@ virSecurityManagerVerify(virSecurityManager *mgr,
if (secdef == NULL || secdef->model == NULL) if (secdef == NULL || secdef->model == NULL)
return 0; return 0;
VIR_WITH_OBJECT_LOCK_GUARD(mgr) {
if (mgr->drv->domainSecurityVerify) { if (mgr->drv->domainSecurityVerify) {
int ret; return mgr->drv->domainSecurityVerify(mgr, def);
virObjectLock(mgr); }
ret = mgr->drv->domainSecurityVerify(mgr, def);
virObjectUnlock(mgr);
return ret;
} }
virReportUnsupportedError(); virReportUnsupportedError();
@ -975,16 +928,14 @@ virSecurityManagerSetImageFDLabel(virSecurityManager *mgr,
virDomainDef *vm, virDomainDef *vm,
int fd) int fd)
{ {
if (mgr->drv->domainSetSecurityImageFDLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetSecurityImageFDLabel(mgr, vm, fd);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSecurityImageFDLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainSetSecurityImageFDLabel(mgr, vm, fd);
} }
@ -993,16 +944,14 @@ virSecurityManagerSetTapFDLabel(virSecurityManager *mgr,
virDomainDef *vm, virDomainDef *vm,
int fd) int fd)
{ {
if (mgr->drv->domainSetSecurityTapFDLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetSecurityTapFDLabel(mgr, vm, fd);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSecurityTapFDLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainSetSecurityTapFDLabel(mgr, vm, fd);
} }
@ -1010,16 +959,14 @@ char *
virSecurityManagerGetMountOptions(virSecurityManager *mgr, virSecurityManagerGetMountOptions(virSecurityManager *mgr,
virDomainDef *vm) virDomainDef *vm)
{ {
if (mgr->drv->domainGetSecurityMountOptions) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
char *ret;
virObjectLock(mgr);
ret = mgr->drv->domainGetSecurityMountOptions(mgr, vm);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainGetSecurityMountOptions) {
virReportUnsupportedError(); virReportUnsupportedError();
return NULL; return NULL;
}
return mgr->drv->domainGetSecurityMountOptions(mgr, vm);
} }
@ -1059,15 +1006,12 @@ virSecurityManagerDomainSetPathLabel(virSecurityManager *mgr,
const char *path, const char *path,
bool allowSubtree) bool allowSubtree)
{ {
if (mgr->drv->domainSetPathLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetPathLabel(mgr, vm, path, allowSubtree);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetPathLabel)
return 0; return 0;
return mgr->drv->domainSetPathLabel(mgr, vm, path, allowSubtree);
} }
@ -1088,15 +1032,12 @@ virSecurityManagerDomainSetPathLabelRO(virSecurityManager *mgr,
virDomainDef *vm, virDomainDef *vm,
const char *path) const char *path)
{ {
if (mgr->drv->domainSetPathLabelRO) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetPathLabelRO(mgr, vm, path);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetPathLabelRO)
return 0; return 0;
return mgr->drv->domainSetPathLabelRO(mgr, vm, path);
} }
/** /**
@ -1115,15 +1056,12 @@ virSecurityManagerDomainRestorePathLabel(virSecurityManager *mgr,
virDomainDef *vm, virDomainDef *vm,
const char *path) const char *path)
{ {
if (mgr->drv->domainRestorePathLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainRestorePathLabel(mgr, vm, path);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainRestorePathLabel)
return 0; return 0;
return mgr->drv->domainRestorePathLabel(mgr, vm, path);
} }
@ -1143,16 +1081,14 @@ virSecurityManagerSetMemoryLabel(virSecurityManager *mgr,
virDomainDef *vm, virDomainDef *vm,
virDomainMemoryDef *mem) virDomainMemoryDef *mem)
{ {
if (mgr->drv->domainSetSecurityMemoryLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetSecurityMemoryLabel(mgr, vm, mem);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSecurityMemoryLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainSetSecurityMemoryLabel(mgr, vm, mem);
} }
@ -1171,16 +1107,14 @@ virSecurityManagerRestoreMemoryLabel(virSecurityManager *mgr,
virDomainDef *vm, virDomainDef *vm,
virDomainMemoryDef *mem) virDomainMemoryDef *mem)
{ {
if (mgr->drv->domainRestoreSecurityMemoryLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainRestoreSecurityMemoryLabel(mgr, vm, mem);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainRestoreSecurityMemoryLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainRestoreSecurityMemoryLabel(mgr, vm, mem);
} }
@ -1189,16 +1123,14 @@ virSecurityManagerSetInputLabel(virSecurityManager *mgr,
virDomainDef *vm, virDomainDef *vm,
virDomainInputDef *input) virDomainInputDef *input)
{ {
if (mgr->drv->domainSetSecurityInputLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetSecurityInputLabel(mgr, vm, input);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSecurityInputLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainSetSecurityInputLabel(mgr, vm, input);
} }
@ -1207,16 +1139,14 @@ virSecurityManagerRestoreInputLabel(virSecurityManager *mgr,
virDomainDef *vm, virDomainDef *vm,
virDomainInputDef *input) virDomainInputDef *input)
{ {
if (mgr->drv->domainRestoreSecurityInputLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainRestoreSecurityInputLabel(mgr, vm, input);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainRestoreSecurityInputLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainRestoreSecurityInputLabel(mgr, vm, input);
} }
@ -1226,17 +1156,15 @@ virSecurityManagerSetChardevLabel(virSecurityManager *mgr,
virDomainChrSourceDef *dev_source, virDomainChrSourceDef *dev_source,
bool chardevStdioLogd) bool chardevStdioLogd)
{ {
if (mgr->drv->domainSetSecurityChardevLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetSecurityChardevLabel(mgr, def, dev_source,
chardevStdioLogd);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSecurityChardevLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainSetSecurityChardevLabel(mgr, def, dev_source,
chardevStdioLogd);
} }
@ -1246,17 +1174,15 @@ virSecurityManagerRestoreChardevLabel(virSecurityManager *mgr,
virDomainChrSourceDef *dev_source, virDomainChrSourceDef *dev_source,
bool chardevStdioLogd) bool chardevStdioLogd)
{ {
if (mgr->drv->domainRestoreSecurityChardevLabel) { VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainRestoreSecurityChardevLabel(mgr, def, dev_source,
chardevStdioLogd);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainRestoreSecurityChardevLabel) {
virReportUnsupportedError(); virReportUnsupportedError();
return -1; return -1;
}
return mgr->drv->domainRestoreSecurityChardevLabel(mgr, def, dev_source,
chardevStdioLogd);
} }
@ -1264,17 +1190,12 @@ int
virSecurityManagerSetTPMLabels(virSecurityManager *mgr, virSecurityManagerSetTPMLabels(virSecurityManager *mgr,
virDomainDef *vm) virDomainDef *vm)
{ {
int ret; VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
if (mgr->drv->domainSetSecurityTPMLabels) {
virObjectLock(mgr);
ret = mgr->drv->domainSetSecurityTPMLabels(mgr, vm);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSecurityTPMLabels)
return 0; return 0;
return mgr->drv->domainSetSecurityTPMLabels(mgr, vm);
} }
@ -1282,17 +1203,12 @@ int
virSecurityManagerRestoreTPMLabels(virSecurityManager *mgr, virSecurityManagerRestoreTPMLabels(virSecurityManager *mgr,
virDomainDef *vm) virDomainDef *vm)
{ {
int ret; VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
if (mgr->drv->domainRestoreSecurityTPMLabels) {
virObjectLock(mgr);
ret = mgr->drv->domainRestoreSecurityTPMLabels(mgr, vm);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainRestoreSecurityTPMLabels)
return 0; return 0;
return mgr->drv->domainRestoreSecurityTPMLabels(mgr, vm);
} }
@ -1301,17 +1217,12 @@ virSecurityManagerSetNetdevLabel(virSecurityManager *mgr,
virDomainDef *vm, virDomainDef *vm,
virDomainNetDef *net) virDomainNetDef *net)
{ {
int ret; VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
if (mgr->drv->domainSetSecurityNetdevLabel) {
virObjectLock(mgr);
ret = mgr->drv->domainSetSecurityNetdevLabel(mgr, vm, net);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainSetSecurityNetdevLabel)
return 0; return 0;
return mgr->drv->domainSetSecurityNetdevLabel(mgr, vm, net);
} }
@ -1320,17 +1231,12 @@ virSecurityManagerRestoreNetdevLabel(virSecurityManager *mgr,
virDomainDef *vm, virDomainDef *vm,
virDomainNetDef *net) virDomainNetDef *net)
{ {
int ret; VIR_LOCK_GUARD lock = virObjectLockGuard(mgr);
if (mgr->drv->domainRestoreSecurityNetdevLabel) {
virObjectLock(mgr);
ret = mgr->drv->domainRestoreSecurityNetdevLabel(mgr, vm, net);
virObjectUnlock(mgr);
return ret;
}
if (!mgr->drv->domainRestoreSecurityNetdevLabel)
return 0; return 0;
return mgr->drv->domainRestoreSecurityNetdevLabel(mgr, vm, net);
} }