mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-03 12:57:14 +08:00
57 lines
2.3 KiB
Diff
57 lines
2.3 KiB
Diff
From fe89fd3b4071242ce9bbae6e1178fee30dc2f4f9 Mon Sep 17 00:00:00 2001
|
|
From: =?utf8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
|
|
Date: Thu, 4 Jul 2013 14:41:46 +0200
|
|
Subject: [PATCH] Unlock the storage volume object after looking it up
|
|
|
|
Introduced by c930410.
|
|
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=980676
|
|
---
|
|
src/storage/storage_driver.c | 10 ++++++----
|
|
1 files changed, 6 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
|
|
index 02f7b69..d15b3d4 100644
|
|
--- a/src/storage/storage_driver.c
|
|
+++ b/src/storage/storage_driver.c
|
|
@@ -1380,15 +1380,16 @@ storageVolLookupByKey(virConnectPtr conn,
|
|
virStorageVolDefFindByKey(driver->pools.objs[i], key);
|
|
|
|
if (vol) {
|
|
- if (virStorageVolLookupByKeyEnsureACL(conn, driver->pools.objs[i]->def, vol) < 0)
|
|
+ if (virStorageVolLookupByKeyEnsureACL(conn, driver->pools.objs[i]->def, vol) < 0) {
|
|
+ virStoragePoolObjUnlock(driver->pools.objs[i]);
|
|
goto cleanup;
|
|
+ }
|
|
|
|
ret = virGetStorageVol(conn,
|
|
driver->pools.objs[i]->def->name,
|
|
vol->name,
|
|
vol->key,
|
|
NULL, NULL);
|
|
- goto cleanup;
|
|
}
|
|
}
|
|
virStoragePoolObjUnlock(driver->pools.objs[i]);
|
|
@@ -1440,15 +1441,16 @@ storageVolLookupByPath(virConnectPtr conn,
|
|
VIR_FREE(stable_path);
|
|
|
|
if (vol) {
|
|
- if (virStorageVolLookupByPathEnsureACL(conn, driver->pools.objs[i]->def, vol) < 0)
|
|
+ if (virStorageVolLookupByPathEnsureACL(conn, driver->pools.objs[i]->def, vol) < 0) {
|
|
+ virStoragePoolObjUnlock(driver->pools.objs[i]);
|
|
goto cleanup;
|
|
+ }
|
|
|
|
ret = virGetStorageVol(conn,
|
|
driver->pools.objs[i]->def->name,
|
|
vol->name,
|
|
vol->key,
|
|
NULL, NULL);
|
|
- goto cleanup;
|
|
}
|
|
}
|
|
virStoragePoolObjUnlock(driver->pools.objs[i]);
|
|
--
|
|
1.7.1
|