[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-id: <20080320235512.GY2971@webber.adilger.int>
Date: Fri, 21 Mar 2008 07:55:12 +0800
From: Andreas Dilger <adilger@....com>
To: "Aneesh Kumar K.V" <aneesh.kumar@...ux.vnet.ibm.com>
Cc: Mingming Cao <cmm@...ibm.com>, Eric Sandeen <sandeen@...hat.com>,
ext4 <linux-ext4@...r.kernel.org>
Subject: Re: BUG with delayed allocation
On Mar 20, 2008 23:26 +0530, Aneesh Kumar K.V wrote:
> On Thu, Mar 20, 2008 at 10:29:50AM -0700, Mingming Cao wrote:
> > On Thu, 2008-03-20 at 11:09 +0530, Aneesh Kumar K.V wrote:
> > > > Could you try the following patch? It updates the i_disksize at the
> > > > write_end time.
> > >
> > > I will test the patch and update you. BTW shouldn't we update
> > > i_disksize only after actual block got allocated ?
> >
> > Hmm...I am not 100% sure but I think we should not to change the
> > behavior that the on-disk inode size should be updated when write()
> > returns to user. Right now the in-memory inode size is updated, user
> > would expecting the same when they run e2fsck, but e2fsck reads inode
> > size from disk. Pushing the inode i_disksize update at the writeout
> > (allocation) time will cause the window that i_size is different than
> > the i_disksize being enlarged quite big.
>
> If we are updating i_disksize during write_end and if we crash before actually
> allocating the blocks e2fsck will find errors because the inode doesn't
> really have that many blocks right ?
No, it would just think the file is sparse and return \0 for the reads.
That said, I don't agree with Mingming - the i_disksize should only be
increased at the time the blocks are allocated on disk and not when the
file is extended in memory. Even if the window where i_size is different
than i_disksize is large, this is only important after a crash, and at
that time ordered mode users want the file to have a shorter i_disksize
and the file contains only valid data, instead of the extended i_size
but the file contains \0 bytes at the end.
Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.
--
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