On 07/11/2012 01:51 PM, Daniel P. Berrange wrote: > On Wed, Jul 11, 2012 at 01:25:34PM +0200, Sascha Peilicke wrote: >> --- >> src/storage/storage_backend_fs.c | 11 +++++++++++ >> 1 file changed, 11 insertions(+) >> >> diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c >> index 4894994..8e93aaa 100644 >> --- a/src/storage/storage_backend_fs.c >> +++ b/src/storage/storage_backend_fs.c >> @@ -1138,6 +1138,17 @@ virStorageBackendFileSystemVolDelete(virConnectPtr conn ATTRIBUTE_UNUSED, >> virCheckFlags(0, -1); >> >> if (unlink(vol->target.path) < 0) { >> + if (errno == EISDIR /* linux */ || >> + errno == EPERM /* posix */) { >> + if (rmdir(vol->target.path) < 0) { >> + virReportSystemError(errno, >> + _("cannot remove directory '%s'"), >> + vol->target.path); >> + return -1; >> + } else { >> + return 0; >> + } >> + } > > The vol->type field should already tell us whether the volume is a FILE, > BLOCK, NETWORK or DIR object. We should make this code switch(vol->type) > and use unlink or rmdir as appropriate, and raise an error for BLOCK > or NETWORK types Sounds reasonable, I'll adjust the patch. -- With kind regards, Sascha Peilicke SUSE Linux GmbH, Maxfeldstr. 5, D-90409 Nuernberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer HRB 16746 (AG Nürnberg)
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list