diff --git a/fs/f2fs/extent_cache.c b/fs/f2fs/extent_cache.c
index 53f49f71332316e348d986de5463c7a26ae4bd2b..365cf950891b6003cc83d1bfa31244dad8efdf99 100644
--- a/fs/f2fs/extent_cache.c
+++ b/fs/f2fs/extent_cache.c
@@ -569,6 +569,7 @@ unsigned int f2fs_shrink_extent_tree(struct f2fs_sb_info *sbi, int nr_shrink)
 
 		if (node_cnt + tree_cnt >= nr_shrink)
 			goto unlock_out;
+		cond_resched();
 	}
 	up_write(&sbi->extent_tree_lock);