[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Thu, 5 May 2011 19:47:29 +0800
From: Yongqiang Yang <xiaoqiangnk@...il.com>
To: Pádraig Brady <P@...igbrady.com>
Cc: Eric Sandeen <sandeen@...deen.net>, xfs-oss <xfs@....sgi.com>,
linux-ext4@...r.kernel.org, coreutils@....org,
Markus Trippelsdorf <markus@...ppelsdorf.de>
Subject: Re: Files full of zeros with coreutils-8.11 and xfs (FIEMAP related?)
2011/5/5 Pádraig Brady <P@...igbrady.com>:
> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists