Re: [PATCH RFC 7/8] fs/ext4: Only change S_DAX on inode load

From: Ira Weiny
Date: Fri Apr 17 2020 - 13:18:49 EST


On Wed, Apr 15, 2020 at 04:03:08PM +0200, Jan Kara wrote:
> On Mon 13-04-20 21:00:29, ira.weiny@xxxxxxxxx wrote:
> > From: Ira Weiny <ira.weiny@xxxxxxxxx>
> >
> > To prevent complications with in memory inodes we only set S_DAX on
> > inode load. FS_XFLAG_DAX can be changed at any time and S_DAX will
> > change after inode eviction and reload.
> >
> > Add init bool to ext4_set_inode_flags() to indicate if the inode is
> > being newly initialized.
> >
> > Assert that S_DAX is not set on an inode which is just being loaded.
>
> > @@ -4408,11 +4408,13 @@ static bool ext4_enable_dax(struct inode *inode)
> > return (flags & EXT4_DAX_FL) == EXT4_DAX_FL;
> > }
> >
> > -void ext4_set_inode_flags(struct inode *inode)
> > +void ext4_set_inode_flags(struct inode *inode, bool init)
> > {
> > unsigned int flags = EXT4_I(inode)->i_flags;
> > unsigned int new_fl = 0;
> >
> > + J_ASSERT(!(IS_DAX(inode) && init));
> > +
>
> WARN_ON or BUG_ON here? J_ASSERT is for journalling assertions...

Ah sorry, did not realize that J_ was specific.

Changed to WARN_ON_ONCE()

Ira

>
> Otherwise the patch looks good.
>
> Honza
>
> --
> Jan Kara <jack@xxxxxxxx>
> SUSE Labs, CR