[libvirt] [PATCH] Fix directory removal in virStorageBackendFileSystemVolDelete
Sascha Peilicke
saschpe at suse.de
Thu Jul 12 07:51:32 UTC 2012
On 07/11/2012 05:42 PM, Daniel P. Berrange wrote:
> 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.
Bummer!
>
>> }
>> return 0;
>> }
>
> I fixed that small bug and committed this patch to GIT, adding your
> name to AUTHORS.
Thanks a lot Daniel!
--
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)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120712/19c44de9/attachment-0001.sig>
More information about the libvir-list
mailing list