diff --git a/fs/exfat/fatent.c b/fs/exfat/fatent.c index 65a8c9fb072c47a4037857340c3264b85fd6cb6a..c75c5a2cad425642fca95cd6a5c2c53b47e14d57 100644 --- a/fs/exfat/fatent.c +++ b/fs/exfat/fatent.c @@ -344,8 +344,9 @@ int exfat_alloc_cluster(struct inode *inode, unsigned int num_alloc, /* check cluster validation */ if (!is_valid_cluster(sbi, hint_clu)) { - exfat_err(sb, "hint_cluster is invalid (%u)", - hint_clu); + if (hint_clu != sbi->num_clusters) + exfat_err(sb, "hint_cluster is invalid (%u), rewind to the first cluster", + hint_clu); hint_clu = EXFAT_FIRST_CLUSTER; p_chain->flags = ALLOC_FAT_CHAIN; }