On Tue, Dec 3, 2024 at 2:33 PM Yuezhang.Mo@xxxxxxxx <Yuezhang.Mo@xxxxxxxx> wrote: > > On failure, "dentry" is the error code. If the error code indicates > that there is no space, a new cluster may need to be allocated; for > other errors, it should be returned directly. > > Only on success, "dentry" is the index of the directory entry, and > it needs to be converted into the directory entry index within the > cluster where it is located. > > Fixes: 8a3f5711ad74 ("exfat: reduce FAT chain traversal") This issue caused by this patch ? If yes, Could you elaborate how this patch make this issue ? > Reported-by: syzbot+6f6c9397e0078ef60bce@xxxxxxxxxxxxxxxxxxxxxxxxx > Tested-by: syzbot+6f6c9397e0078ef60bce@xxxxxxxxxxxxxxxxxxxxxxxxx I can not reproduce it using C-reproducer. Have you reproduced it ? Thanks. > Signed-off-by: Yuezhang Mo <Yuezhang.Mo@xxxxxxxx> > --- > fs/exfat/namei.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/exfat/namei.c b/fs/exfat/namei.c > index f203c53277e2..c24b62681535 100644 > --- a/fs/exfat/namei.c > +++ b/fs/exfat/namei.c > @@ -330,8 +330,8 @@ static int exfat_find_empty_entry(struct inode *inode, > > while ((dentry = exfat_search_empty_slot(sb, &hint_femp, p_dir, > num_entries, es)) < 0) { > - if (dentry == -EIO) > - break; > + if (dentry != -ENOSPC) > + return dentry; > > if (exfat_check_max_dentries(inode)) > return -ENOSPC; > -- > 2.43.0 >