hc
2024-05-10 9999e48639b3cecb08ffb37358bcba3b48161b29
kernel/fs/fuse/readdir.c
....@@ -243,8 +243,16 @@
243243 dput(dentry);
244244 dentry = alias;
245245 }
246
- if (IS_ERR(dentry))
246
+ if (IS_ERR(dentry)) {
247
+ if (!IS_ERR(inode)) {
248
+ struct fuse_inode *fi = get_fuse_inode(inode);
249
+
250
+ spin_lock(&fi->lock);
251
+ fi->nlookup--;
252
+ spin_unlock(&fi->lock);
253
+ }
247254 return PTR_ERR(dentry);
255
+ }
248256 }
249257 if (fc->readdirplus_auto)
250258 set_bit(FUSE_I_INIT_RDPLUS, &get_fuse_inode(inode)->state);