From: Khazhismel Kumykov <khazhy@xxxxxxxxxx> Subject: fs/fat/fatent.c: add cond_resched() to fat_count_free_clusters() On non-preempt kernels this loop can take a long time (more than 50 ticks) processing through entries. Link: http://lkml.kernel.org/r/20181010172623.57033-1-khazhy@xxxxxxxxxx Signed-off-by: Khazhismel Kumykov <khazhy@xxxxxxxxxx> Acked-by: OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx> Reviewed-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- --- a/fs/fat/fatent.c~fs-fat-add-cond_resched-to-fat_count_free_clusters +++ a/fs/fat/fatent.c @@ -682,6 +682,7 @@ int fat_count_free_clusters(struct super if (ops->ent_get(&fatent) == FAT_ENT_FREE) free++; } while (fat_ent_next(sbi, &fatent)); + cond_resched(); } sbi->free_clusters = free; sbi->free_clus_valid = 1; _