From 6fcbdf7308ce82a5ed6dc2ba64463347e20d00c2 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Wed, 19 Apr 2017 16:40:45 -0400 Subject: [PATCH] secret: Generate configDir during driver initialization Rather than waiting for the first save to fail, let's generate the directory with the correct privs during initialization. Signed-off-by: John Ferlan --- src/secret/secret_driver.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/src/secret/secret_driver.c b/src/secret/secret_driver.c index 4c7fa1e80e..fc01e6d1b8 100644 --- a/src/secret/secret_driver.c +++ b/src/secret/secret_driver.c @@ -96,17 +96,6 @@ secretObjFromSecret(virSecretPtr secret) } -static int -secretEnsureDirectory(void) -{ - if (mkdir(driver->configDir, S_IRWXU) < 0 && errno != EEXIST) { - virReportSystemError(errno, _("cannot create '%s'"), - driver->configDir); - return -1; - } - return 0; -} - /* Driver functions */ static int @@ -237,9 +226,6 @@ secretDefineXML(virConnectPtr conn, goto cleanup; if (!def->isephemeral) { - if (secretEnsureDirectory() < 0) - goto cleanup; - if (backup && backup->isephemeral) { if (virSecretObjSaveData(obj) < 0) goto restore_backup; @@ -338,9 +324,6 @@ secretSetValue(virSecretPtr secret, if (virSecretSetValueEnsureACL(secret->conn, def) < 0) goto cleanup; - if (secretEnsureDirectory() < 0) - goto cleanup; - if (virSecretObjSetValue(obj, value, value_size) < 0) goto cleanup; @@ -481,6 +464,12 @@ secretStateInitialize(bool privileged, goto error; VIR_FREE(base); + if (virFileMakePathWithMode(driver->configDir, S_IRWXU) < 0) { + virReportSystemError(errno, _("cannot create config directory '%s'"), + driver->configDir); + goto error; + } + if (!(driver->secrets = virSecretObjListNew())) goto error; -- GitLab