xfs
[Top] [All Lists]

Re: [PATCH] Don't reset di_format in xfs_ifree()

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [PATCH] Don't reset di_format in xfs_ifree()
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Tue, 17 Feb 2009 14:03:06 +1100
Cc: Lachlan McIlroy <lachlan@xxxxxxx>, xfs-oss <xfs@xxxxxxxxxxx>
In-reply-to: <20090215192507.GA15360@xxxxxxxxxxxxx>
Mail-followup-to: Christoph Hellwig <hch@xxxxxxxxxxxxx>, Lachlan McIlroy <lachlan@xxxxxxx>, xfs-oss <xfs@xxxxxxxxxxx>
References: <49921B3E.8040406@xxxxxxx> <20090211092020.GR8830@disturbed> <49937458.2000500@xxxxxxx> <20090212223253.GV8830@disturbed> <20090215192507.GA15360@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.18 (2008-05-17)
On Sun, Feb 15, 2009 at 02:25:08PM -0500, Christoph Hellwig wrote:
> On Fri, Feb 13, 2009 at 09:32:53AM +1100, Dave Chinner wrote:
> > > Yes, I agree.  I just don't have the time to hunt it down.  I see
> > > there's a call to xfs_idestroy_fork() in xfs_ireclaim() for directories
> > > but xfs_ireclaim() gets called after xfs_iflush() in xfs_reclaim_inode().
> > 
> > I suspect it should be in xfs_inactive() if we are in local format.
> > This is what happens with the attribute fork.  I think that is where
> > we need something like:
> > 
> >     if ((ip->i_d.di_mode & S_IFMT) == S_IFDIR &&
> >         ip->i_d.di_nextents == 0)
> >             xfs_idestroy_fork(ip, XFS_DATA_FORK);
> 
> Why would we special case directories?

I guess we don't need to - I was thinking purely of local format
inodes....

> Btw, I can't reproduce this issue with the extent.c program and the
> invocation from the next patch.  Does it need other parameters to
> reproduce?

No idea, I haven't been able to reproduce it either.

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

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