[Sheepdog] [PATCH 1/2] deleting data objects of a vdi before deleting the inode

levin li levin108 at gmail.com
Tue May 1 05:26:29 CEST 2012


On 04/28/2012 09:50 PM, Christoph Hellwig wrote:
> On Sat, Apr 28, 2012 at 11:48:46AM +0800, Liu Yuan wrote:
>> I think the problem is caused by your patch:
>>
>>          inode = malloc(sizeof(*inode));
>>          if (!inode) {
>>                  eprintf("failed to allocate memory\n");
>>                  goto out;
>>          }
>>
>>          nr_copies = get_nr_copies(dw->vnodes);
>>          if (nr_copies>  inode->nr_copies)
>>                  nr_copies = inode->nr_copies;<--inode->nr_copies will
>> get a random value
> That code defintively is wrong, and was introduced by a mismerge, sorry.
> I'll send a patch to fix it.
>
> But it's unrelated to the issue I report, which is reproducible with
> git tree revision dabb5200202f2225e69002c055afba97ee5cf73a, and is fine
> with the revision before, 453072667ce08c6613d627b8ed0ac4f33e6e8dbe.
>
What you saw in the output of my code is not a bug, I did it to make the
vdi size as zero to mark it as delete failed, I think it's better not to
and a field to the sheepdog_inode struct, if fail to delete some of its data
objects, the vdi should be marked as delete failed, so we can try to delete
it again.



More information about the sheepdog mailing list