kernel/fs/fuse/readdir.c
.. .. @@ -243,8 +243,16 @@ 243 243 dput(dentry); 244 244 dentry = alias; 245 245 } 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 + }247 254 return PTR_ERR(dentry); 255 + }248 256 } 249 257 if (fc->readdirplus_auto) 250 258 set_bit(FUSE_I_INIT_RDPLUS, &get_fuse_inode(inode)->state);