diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 62bd4c6d0e..d57bf5b6ec 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1026,6 +1026,7 @@ virSecurityDriverLookup; # security/security_manager.h virSecurityManagerCheckAllLabel; virSecurityManagerClearSocketLabel; +virSecurityManagerDomainSetDirLabel; virSecurityManagerGenLabel; virSecurityManagerGetBaseLabel; virSecurityManagerGetDOI; diff --git a/src/security/security_driver.h b/src/security/security_driver.h index f0dca09177..784b0dee65 100644 --- a/src/security/security_driver.h +++ b/src/security/security_driver.h @@ -118,6 +118,9 @@ typedef int (*virSecurityDomainSetImageLabel) (virSecurityManagerPtr mgr, typedef int (*virSecurityDomainRestoreImageLabel) (virSecurityManagerPtr mgr, virDomainDefPtr def, virStorageSourcePtr src); +typedef int (*virSecurityDomainSetDirLabel) (virSecurityManagerPtr mgr, + virDomainDefPtr def, + const char *path); struct _virSecurityDriver { @@ -168,6 +171,8 @@ struct _virSecurityDriver { virSecurityDomainSetHugepages domainSetSecurityHugepages; virSecurityDriverGetBaseLabel getBaseLabel; + + virSecurityDomainSetDirLabel domainSetDirLabel; }; virSecurityDriverPtr virSecurityDriverLookup(const char *name, diff --git a/src/security/security_manager.c b/src/security/security_manager.c index b0cd9e8569..1098558b07 100644 --- a/src/security/security_manager.c +++ b/src/security/security_manager.c @@ -991,3 +991,20 @@ virSecurityManagerSetHugepages(virSecurityManagerPtr mgr, return 0; } + + +int +virSecurityManagerDomainSetDirLabel(virSecurityManagerPtr mgr, + virDomainDefPtr vm, + const char *path) +{ + if (mgr->drv->domainSetDirLabel) { + int ret; + virObjectLock(mgr); + ret = mgr->drv->domainSetDirLabel(mgr, vm, path); + virObjectUnlock(mgr); + return ret; + } + + return 0; +} diff --git a/src/security/security_manager.h b/src/security/security_manager.h index 13468db399..78f34a033f 100644 --- a/src/security/security_manager.h +++ b/src/security/security_manager.h @@ -150,4 +150,8 @@ int virSecurityManagerRestoreImageLabel(virSecurityManagerPtr mgr, virDomainDefPtr vm, virStorageSourcePtr src); +int virSecurityManagerDomainSetDirLabel(virSecurityManagerPtr mgr, + virDomainDefPtr vm, + const char *path); + #endif /* VIR_SECURITY_MANAGER_H__ */