On 04/29/2015 09:08 AM, Ján Tomko wrote:
Just as we allow stopping filesystem pools when they were unmounted
externally, do not fail to stop an iscsi pool when someone else
closed the session externally.
Resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=1171984
For this I disagree - it doesn't resolve all the issues in 1171984. It
resolves a symptom of libvirt allowing more than one pool to use the
same session.
While there is disagreement over the method I've taken :
http://www.redhat.com/archives/libvir-list/2015-April/msg01197.html
Simply "covering up" the original issue by just ignoring the error on
stop doesn't seem to be the best solution to me.
John
---
src/storage/storage_backend_iscsi.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/storage/storage_backend_iscsi.c b/src/storage/storage_backend_iscsi.c
index 197d333..bea6758 100644
--- a/src/storage/storage_backend_iscsi.c
+++ b/src/storage/storage_backend_iscsi.c
@@ -449,8 +449,13 @@ virStorageBackendISCSIStopPool(virConnectPtr conn ATTRIBUTE_UNUSED,
virStoragePoolObjPtr pool)
{
char *portal;
+ char *session;
int ret = -1;
+ if ((session = virStorageBackendISCSISession(pool, false)) == NULL)
+ return 0;
+ VIR_FREE(session);
+
if ((portal = virStorageBackendISCSIPortal(&pool->def->source)) == NULL)
return -1;