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... Otherwise the patch looks good. Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR