Re: [PATCH] xfs_quota: XFS_XFLAG_PROJINHERIT is only for dirs

Ben Myers
2012-10-16T20:16:19Z

Hey Eric,

On Sun, Oct 14, 2012 at 11:14:12AM +1100, Dave Chinner wrote:
> On Sat, Oct 13, 2012 at 07:05:51PM -0500, Eric Sandeen wrote:
> > On 10/13/12 6:34 PM, Dave Chinner wrote:
> > > On Sat, Oct 13, 2012 at 11:52:05AM -0400, Christoph Hellwig wrote:
> > >> On Fri, Oct 12, 2012 at 11:19:55AM -0500, Eric Sandeen wrote:
> > >>> xfs_quota has long set XFS_XFLAG_PROJINHERIT on all files,
> > >>> and tested for presence on all files. However, Dave's semi-recent
> > >>> xfs_repair update is now flagging this as an error:
> > >>
> > >> I think we should rever that part of the repair patch. While there
> > >> really is not point to have XFS_XFLAG_PROJINHERIT set on non-directory
> > >> files we have been setting it for year, so repair should cope with that.
> > >
> > > Repair does cope with it - it issues a warning and clears the flag.
> > > It doesn't stop, it simply fixes an inconsistency in the inode flags.
> > >
> > > The main problem, by the sounds of it, is that repair issues a
> > > warning that it is clearing the flags that should not be set. This
> > > is what makes check_scratch_fs fail because of the extra output.
> > > That's easy to fix - filter the line from the repair output and be
> > > done with it. In future (with Eric's patch) this situation won't
> > > occur.
> > >
> > > So, really, I think the only thing that needs modifying to handle
> > > this situation is a filter update to xfstests...
> >
> > I must be missing something; quota will continue to set it and repair
> > will continue to clear it. One should probably match the other right?
> > So one or the other should change.
>
> Sorry, I wasn't particularly clear - if your patch to quota goes in,
> the problem goes away in future and we should simply filter the
> warning in xfstests to handle the present issue....

I think Dave has an interesting idea here.

You already have:

1) only set XFS_XFLAG_PROJINHERIT on directories in setup_project,

2) update check_project to print the right warning based upon the above,

Now all you need is:

3) update _check_scratch_fs to filter
"directory flags set on non-directory inode %llu"

I guess the downside of that is the test might subsequently miss other
related failure modes of xfs_repair. Maybe it would be better to make
xfs_repair have a separate error message for this specific case, and
then filter that out of the test output. How would you know when it's
ok to remove the filter?

Regards,
Ben