On Thu, May 28, 2015 at 05:29:55PM +0200, Erik Skultety wrote:
RBD API returns negative value of errno, in that case we can silently
ignore if RBD tries to delete a non-existent volume, just like FS
backend does.
---
src/storage/storage_backend_rbd.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c
index ae4bcb3..8e8d7a7 100644
--- a/src/storage/storage_backend_rbd.c
+++ b/src/storage/storage_backend_rbd.c
@@ -1,7 +1,7 @@
/*
* storage_backend_rbd.c: storage backend for RBD (RADOS Block Device) handling
*
- * Copyright (C) 2013-2014 Red Hat, Inc.
+ * Copyright (C) 2013-2015 Red Hat, Inc.
* Copyright (C) 2012 Wido den Hollander
I wonder how come nobody complained in reply to this patch already...
*
* This library is free software; you can redistribute it and/or
@@ -426,7 +426,7 @@ static int virStorageBackendRBDDeleteVol(virConnectPtr conn,
VIR_DEBUG("Removing RBD image %s/%s", pool->def->source.name,
vol->name);
if (flags & VIR_STORAGE_VOL_DELETE_ZEROED)
- VIR_WARN("%s", _("This storage backend does not supported zeroed
removal of volumes"));
+ VIR_WARN("%s", _("This storage backend does not support zeroed
removal of volumes"));
This could be another trivial patch, but it's *so* trivial, I'm OK
with keeping it here.
if (virStorageBackendRBDOpenRADOSConn(&ptr, conn,
&pool->def->source) < 0)
goto cleanup;
@@ -435,7 +435,7 @@ static int virStorageBackendRBDDeleteVol(virConnectPtr conn,
goto cleanup;
r = rbd_remove(ptr.ioctx, vol->name);
- if (r < 0) {
+ if (r < 0 && (-r) != ENOENT) {
This makes sense. ACK.
virReportSystemError(-r, _("failed to remove volume
'%s/%s'"),
pool->def->source.name, vol->name);
goto cleanup;
--
1.9.3
--
libvir-list mailing list
libvir-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list