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