Re: [PATCH v7 1/3] exfat: add a Bloom filter for negative name lookups
From: Namjae Jeon
Date: Wed Oct 07 2026 - 00:48:32 EST
> /* read a directory entry from the opened directory */
> static int exfat_readdir(struct inode *inode, loff_t *cpos, struct exfat_dir_entry *dir_entry)
> {
> @@ -1035,6 +1216,8 @@ int exfat_find_dir_entry(struct super_block *sb, struct exfat_inode_info *ei,
>
> if (num_entries < 0)
> return num_entries;
> + if (!exfat_name_filter_maybe_contains(&ei->vfs_inode, p_uniname))
> + return -ENOENT;
This early return bypasses the normal lookup path, which resets or
rebuilds ei->hint_femp. For example, a prior FS_IOC_GETFSLABEL on a
volume without a label can leave a root-directory hint with cur.size
set to zero. 0002 patch marks that hint as usable for any create
through min_entries = 1. If the first deleted run is too short and the
search crosses a cluster boundary, exfat_chain_advance() sees a zero
length chain and returns -EIO. Could this path invalidate the hint, or
could the volume-label scan avoid publishing an invalid chain hint?