Re: [PATCH 6/6] ext4/242: Add ext4 specific test for fallocate zero range

Lukáš Czerner
2014-02-25T21:01:16Z

On Wed, 26 Feb 2014, Dave Chinner wrote:

> Date: Wed, 26 Feb 2014 07:53:49 +1100
> From: Dave Chinner <david@fromorbit.com>
> To: Lukas Czerner <lczerner@redhat.com>
> Cc: linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com
> Subject: Re: [PATCH 6/6] ext4/242: Add ext4 specific test for fallocate zero
> range
>
> On Tue, Feb 25, 2014 at 08:15:28PM +0100, Lukas Czerner wrote:
> > This is copy of xfs/242. However it's better to make it file system
> > specific because the range can be zeroes either directly by writing
> > zeroes, or converting to unwritten extent, so the actual result might
> > differ from file system to file system.
>
> You could say the same thing about preallocation using unwritten
> extents. Yet, funnily enough, we have generic tests for them because
> all filesystems currently use unwritten extents for preallocation
> and behave identically....
>
> This test is no different - all filesystems currently use unwritten
> extents, and so this test should be generic because all existing
> filesystems *should* behave the same.
>
> When we get a filesystem that zeros rather uses unwritten extents,
> we can add a new *generic* test that tests for zeroed data extents
> rather than unwritten extents. All that we will need is a method of
> checking what behaviour the filesystem has and adding that to a
> _requires directive to ensure the correct generic fallocate tests
> are run...

Currently xfs/242 fails on xfs for me and it does behave differently
than ext4. Also I had to change to 242.out a bit because ext4 was
a little different. It seems to me that it was expected that when
the extent is small enough it would be overwritten by zeroes rather
than converted to unwritten, but I have not looked into
implementation.

Btw this kind of optimization is actually something I've been
thinking of as well for ext4. Rather than going though the hassle of
changing extents around it might be worth in some situation to zero
out. But that's an optimization I have not implemented yet.

-Lukas

>
> Cheers,
>
> Dave.
>