[libvirt] [PATCH] Fix directory removal in virStorageBackendFileSystemVolDelete
Sascha Peilicke
saschpe at suse.de
Wed Jul 11 11:59:45 UTC 2012
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)
-------------- 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/20120711/df96081f/attachment-0001.sig>
More information about the libvir-list
mailing list