On Fri, May 14, 2021 at 09:55:17AM +0800, Fengnan Chang wrote: > +++ b/fs/fuse/dir.c > @@ -1065,6 +1065,14 @@ static int fuse_do_getattr(struct inode *inode, struct kstat *stat, > fuse_fillattr(inode, &outarg.attr, stat); > } > } > + if (err == -ENOENT) { > + struct dentry *entry; > + > + entry = d_obtain_alias(inode); Why d_obtain_alias() instead of d_find_any_alias()? And what if you find the wrong alias? ie an inode with two links? Or does fuse not support hardlinks?