[libvirt] [PATCHv2] iscsi: do not fail to stop a stopped pool

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. Reported at: https://bugzilla.redhat.com/show_bug.cgi?id=1171984 --- v2: Do not report errors when returning success (use probe=true) refrain from making controversial claims in the commit message 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..9e2d01e 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, true)) == NULL) + return 0; + VIR_FREE(session); + if ((portal = virStorageBackendISCSIPortal(&pool->def->source)) == NULL) return -1; -- 2.0.5

On 04/30/2015 07:06 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.
Reported at: https://bugzilla.redhat.com/show_bug.cgi?id=1171984 --- v2: Do not report errors when returning success (use probe=true) refrain from making controversial claims in the commit message
src/storage/storage_backend_iscsi.c | 5 +++++ 1 file changed, 5 insertions(+)
So if someone does : iscsiadm -m session to find the session(s), $iqn and $ipaddr value and they perform a : iscsiadm -m node -T $iqn -p $ipaddr --logout In order to logout out of the session, this patch will ensure that the pool-destroy path doesn't fail. For that I agree. I still disagree with the bz being listed, but that's your choice. ACK John
diff --git a/src/storage/storage_backend_iscsi.c b/src/storage/storage_backend_iscsi.c index 197d333..9e2d01e 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, true)) == NULL) + return 0; + VIR_FREE(session); + if ((portal = virStorageBackendISCSIPortal(&pool->def->source)) == NULL) return -1;

On Thu, Apr 30, 2015 at 08:46:50AM -0400, John Ferlan wrote:
On 04/30/2015 07:06 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.
Reported at: https://bugzilla.redhat.com/show_bug.cgi?id=1171984 --- v2: Do not report errors when returning success (use probe=true) refrain from making controversial claims in the commit message
src/storage/storage_backend_iscsi.c | 5 +++++ 1 file changed, 5 insertions(+)
So if someone does :
iscsiadm -m session
to find the session(s), $iqn and $ipaddr value and they perform a :
iscsiadm -m node -T $iqn -p $ipaddr --logout
In order to logout out of the session, this patch will ensure that the pool-destroy path doesn't fail. For that I agree. I still disagree with the bz being listed, but that's your choice.
Well it is where I saw the bug reported (although it was libvirt doing the logout there, not the user).
ACK
Thanks, pushed now. Jan
participants (2)
-
John Ferlan
-
Ján Tomko