xfs
[Top] [All Lists]

Re: [PATCH 1/2] xfs: don't truncate attribute extents if no extents exis

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [PATCH 1/2] xfs: don't truncate attribute extents if no extents exist
From: Brian Foster <bfoster@xxxxxxxxxx>
Date: Fri, 19 Jun 2015 11:45:23 -0400
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20150619151421.GC22842@xxxxxxxxxxxxx>
References: <1434631741-50856-1-git-send-email-bfoster@xxxxxxxxxx> <1434631741-50856-2-git-send-email-bfoster@xxxxxxxxxx> <20150619151421.GC22842@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.23 (2014-03-12)
On Fri, Jun 19, 2015 at 08:14:21AM -0700, Christoph Hellwig wrote:
> > A '-p 2' fsstress run to ENOSPC on a relatively small fs (1GB)
> > reproduces these problems.
> 
> Any chance to add this test case to xfstests?
> 

I think so. I'll look into it.

> >     /* invalidate and truncate the attribute fork extents */
> > -   if (dp->i_d.di_aformat != XFS_DINODE_FMT_LOCAL) {
> > +   if (xfs_inode_hasattr(dp) &&
> > +       dp->i_d.di_aformat != XFS_DINODE_FMT_LOCAL) {
> 
> And please add a comment describing the condition here, especially
> as xfs_inode_hasattr doesn't have a very descriptive name.
> 

How about this?

        /*
         * Invalidate and truncate the attribute fork extents. Make sure the
         * fork actually has attributes as otherwise the invalidation has no
         * blocks to read and returns an error. In this case, just do the fork
         * removal below.
         */

Brian

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