xfs
[Top] [All Lists]

Re: [PATCH 1/6 v2] ext4: Update inode i_size after the preallocation

To: tytso@xxxxxxx
Subject: Re: [PATCH 1/6 v2] ext4: Update inode i_size after the preallocation
From: Lukáš Czerner <lczerner@xxxxxxxxxx>
Date: Mon, 17 Mar 2014 11:48:30 +0100 (CET)
Cc: linux-ext4@xxxxxxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20140317030201.GE14162@xxxxxxxxx>
References: <1393355679-11160-1-git-send-email-lczerner@xxxxxxxxxx> <1393355679-11160-2-git-send-email-lczerner@xxxxxxxxxx> <20140317030201.GE14162@xxxxxxxxx>
User-agent: Alpine 2.00 (LFD 1167 2008-08-23)
On Sun, 16 Mar 2014, tytso@xxxxxxx wrote:

> Date: Sun, 16 Mar 2014 23:02:01 -0400
> From: tytso@xxxxxxx
> To: Lukas Czerner <lczerner@xxxxxxxxxx>
> Cc: linux-ext4@xxxxxxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx
> Subject: Re: [PATCH 1/6 v2] ext4: Update inode i_size after the preallocation
> 
> On Tue, Feb 25, 2014 at 08:14:34PM +0100, Lukas Czerner wrote:
> > Currently in ext4_fallocate we would update inode size, c_time and sync
> > the file with every partial allocation which is entirely unnecessary. It
> > is true that if the crash happens in the middle of truncate we might end
> > up with unchanged i size, or c_time which I do not think is really a
> > problem - it does not mean file system corruption in any way. Note that
> > xfs is doing things the same way e.g. update all of the mentioned after
> > the allocation is done.
> > 
> > This commit moves all the updates after the allocation is done. In
> > addition we also need to change m_time as not only inode has been change
> > bot also data regions might have changed (unwritten extents). However
> > m_time will be only updated when i_size changed.
> > 
> > Also we do not need to be paranoid about changing the c_time only if the
> > actual allocation have happened, we can change it even if we try to
> > allocate only to find out that there are already block allocated. It's
> > not really a big deal and it will save us some additional complexity.
> > 
> > Also use ext4_debug, instead of ext4_warning in #ifdef EXT4FS_DEBUG
> > section.
> > 
> > Signed-off-by: Lukas Czerner <lczerner@xxxxxxxxxx>
> 
> Further testing has shown that this patch (applied on top of the ext4
> dev branch) is causing a regression failure of xfstests shared/243.
> 
> Could you take a look?
> 
>                                               - Ted

Hi Ted,

I am looking into this. Thanks!

-Lukas

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