[libvirt] [PATCH] Fix directory removal in virStorageBackendFileSystemVolDelete
Daniel P. Berrange
berrange at redhat.com
Wed Jul 11 15:42:48 UTC 2012
On Wed, Jul 11, 2012 at 03:21:27PM +0200, Sascha Peilicke wrote:
> ---
> src/storage/storage_backend_fs.c | 28 +++++++++++++++++++++++-----
> 1 file changed, 23 insertions(+), 5 deletions(-)
>
> diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
> index 4894994..df0aaf8 100644
> --- a/src/storage/storage_backend_fs.c
> +++ b/src/storage/storage_backend_fs.c
> @@ -1127,7 +1127,7 @@ virStorageBackendFileSystemVolBuildFrom(virConnectPtr conn,
> }
>
> /**
> - * Remove a volume - just unlinks for now
> + * Remove a volume - no support for BLOCK and NETWORK yet
> */
> static int
> virStorageBackendFileSystemVolDelete(virConnectPtr conn ATTRIBUTE_UNUSED,
> @@ -1137,14 +1137,32 @@ virStorageBackendFileSystemVolDelete(virConnectPtr conn ATTRIBUTE_UNUSED,
> {
> virCheckFlags(0, -1);
>
> - if (unlink(vol->target.path) < 0) {
> - /* Silently ignore failures where the vol has already gone away */
> - if (errno != ENOENT) {
> + switch (vol->type) {
> + case VIR_STORAGE_VOL_FILE:
> + if (unlink(vol->target.path) < 0) {
> + /* Silently ignore failures where the vol has already gone away */
> + if (errno != ENOENT) {
> + virReportSystemError(errno,
> + _("cannot unlink file '%s'"),
> + vol->target.path);
> + return -1;
> + }
> + }
> + break;
> + case VIR_STORAGE_VOL_DIR:
> + if (rmdir(vol->target.path) < 0) {
> virReportSystemError(errno,
> - _("cannot unlink file '%s'"),
> + _("cannot remove directory '%s'"),
> vol->target.path);
> return -1;
> }
> + break;
> + case VIR_STORAGE_VOL_BLOCK:
> + case VIR_STORAGE_VOL_NETWORK:
> + default:
> + virStorageReportError(VIR_ERR_NO_SUPPORT,
> + _("removing block or network volumes is not supported: %s"),
> + vol->target.path);
Missing 'return -1' line here.
> }
> return 0;
> }
I fixed that small bug and committed this patch to GIT, adding your
name to AUTHORS.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list