On Wed 30-08-17 12:44:08, Dan Williams wrote: > The ->iomap_begin() operation is a hot path, so cache the > fs_dax_get_by_host() result at mount time to avoid the incurring the > hash lookup overhead on a per-i/o basis. > > Cc: "Theodore Ts'o" <tytso@xxxxxxx> > Cc: Andreas Dilger <adilger.kernel@xxxxxxxxx> > Cc: Jan Kara <jack@xxxxxxx> > Reported-by: Christoph Hellwig <hch@xxxxxx> > Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx> Looks good to me. You can add: Reviewed-by: Jan Kara <jack@xxxxxxx> With the same nit as for ext2: > diff --git a/fs/ext4/super.c b/fs/ext4/super.c > index d61a70e2193a..0b3d94e25efb 100644 > --- a/fs/ext4/super.c > +++ b/fs/ext4/super.c > @@ -864,6 +864,7 @@ static inline void ext4_quota_off_umount(struct super_block *sb) > static void ext4_put_super(struct super_block *sb) > { > struct ext4_sb_info *sbi = EXT4_SB(sb); > + struct dax_device *dax_dev = sbi->s_daxdev; > struct ext4_super_block *es = sbi->s_es; > int aborted = 0; > int i, err; > @@ -952,6 +953,7 @@ static void ext4_put_super(struct super_block *sb) > crypto_free_shash(sbi->s_chksum_driver); > kfree(sbi->s_blockgroup_lock); > kfree(sbi); > + fs_put_dax(dax_dev); Just remove dax_dev local variable... Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR