xfs
[Top] [All Lists]

Re: Files full of zeros with coreutils-8.11 and xfs (FIEMAP related?)

To: Pádraig Brady <P@xxxxxxxxxxxxxx>
Subject: Re: Files full of zeros with coreutils-8.11 and xfs (FIEMAP related?)
From: Yongqiang Yang <xiaoqiangnk@xxxxxxxxx>
Date: Thu, 5 May 2011 19:47:29 +0800
Cc: Eric Sandeen <sandeen@xxxxxxxxxxx>, xfs-oss <xfs@xxxxxxxxxxx>, linux-ext4@xxxxxxxxxxxxxxx, coreutils@xxxxxxx, Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx>
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=ZbDGYCdizAn9zmf/T6HYEVlYREv4DCXt7uKJYVEp47I=; b=PnFY3tfV6Bx9OeLR+0hQH1eHaDkVMrEd3QbZykkRAMSrtwppUvh3/cG0ty8+y95PLF X0gQGQ9/4pupqMTFray/fsxvjrYGpWihl7Dncsip72urpaZbscy3oyd53tQJ22d6Op6q hBczAG7BkFRGFU6AJSTfXEf83B0JHmmgC9MmQ=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=eyaIHyljjvtmtrwdKgS8FnKfydVuLGJYbAFlBwDpyBmPJ32CTit7orXuG4dPC9PjBX LPkcthy5dD3Q/u3cQ4OoP0bRJxKRiM4ZnUdnwYLThf/JQDKmE09rTri034bKCuqep9jZ WuQlvjrFDcXZxRVmH0dt6QouP6kvwhe3wn+eA=
In-reply-to: <4DC28A00.7010309@xxxxxxxxxxxxxx>
References: <20110414102608.GA1678@xxxxxxxxxxxxxx> <20110414120635.GB1678@xxxxxxxxxxxxxx> <20110414140222.GB1679@xxxxxxxxxxxxxx> <4DA70BD3.1070409@xxxxxxxxxxxxxx> <4DA717B2.3020305@xxxxxxxxxxx> <4DA7182B.8050409@xxxxxxxxxxxxxx> <4DA71920.9@xxxxxxxxxxx> <BANLkTikW72q_2pEoVTmag8+gMsCcZ-fR8w@xxxxxxxxxxxxxx> <BANLkTimoLeWMJgNFGW+zdeUeJyZ-_+8fMQ@xxxxxxxxxxxxxx> <4DC28A00.7010309@xxxxxxxxxxxxxx>
2011/5/5 Pádraig Brady <P@xxxxxxxxxxxxxx>:
> On 14/04/11 17:10, Yongqiang Yang wrote:
>> Hi,
>>
>> I am off my working computer.  Maybe below fix could fix the problem.
>>
>> fs/ext4/extent.c
>> static int ext4_ext_walk_space(struct inode *inode, ext4_lblk_t block,
>> 1877                 } else if (block >= le32_to_cpu(ex->ee_block)) {
>> 1878                         /*
>> 1879                          * some part of requested space is covered
>> 1880                          * by found extent
>> 1881                          */
>> 1882                         start = block;
>> 1883                         end = le32_to_cpu(ex->ee_block)
>> 1884                                 + ext4_ext_get_actual_len(ex);
>> 1885                         if (block + num < end)
>> 1886                                 end = block + num;
>>        +                        if (!ext4_ext_is_uninitialized(ex))
>> 1887                         exists = 1;
>> 1888                 } else {
>> 1889                         BUG();
>> 1890                 }
>
> Hi,
>
> To follow up on the above.  I'm under the impression
> that ext4 is expected to return extents for what
> is written, irrespective of whether it's reached the
> disk or not. I.E. the preallocation case where this fails
No.  It just returns extent info now - allocated extents and delayed
extents.  In the preallocation case, it returns unwritten extents.
And the code above does not work.

> was an oversite, for which the above might fix.
>
> So is the above summary correct, and has there
> been any more thoughts on a fix?
>
> cheers,
> Pádraig.
>



-- 
Best Wishes
Yongqiang Yang

<Prev in Thread] Current Thread [Next in Thread>