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.
|
|