--- x/fs/libfs.c +++ y/fs/libfs.c @@ -2012,6 +2012,8 @@ static struct dentry *prepare_anon_dentr dentry = d_alloc_anon(sb); if (!dentry) return ERR_PTR(-ENOMEM); + /* Store address of location where dentry's supposed to be stashed. */ + dentry->d_fsdata = stashed; inode = new_inode_pseudo(sb); if (!inode) { @@ -2029,9 +2031,6 @@ static struct dentry *prepare_anon_dentr WARN_ON_ONCE(!S_ISREG(inode->i_mode)); WARN_ON_ONCE(!IS_IMMUTABLE(inode)); - /* Store address of location where dentry's supposed to be stashed. */ - dentry->d_fsdata = stashed; - /* @data is now owned by the fs */ d_instantiate(dentry, inode); return dentry;