[JFFS2] add cond_resched() when garbage collecting deletion dirent
authorArtem Bityutskiy <dedekind@infradead.org>
Tue, 19 Dec 2006 13:45:23 +0000 (15:45 +0200)
committerDavid Woodhouse <dwmw2@infradead.org>
Tue, 19 Dec 2006 14:20:16 +0000 (14:20 +0000)
We observe soft lockups when doing heavy test which creates
directory with a lot of direntries and deletes them. This
cycle is the reason fo this. Make it nicer and add cond_resched()
inside of it.

Signed-off-by: Artem Bityutskiy <dedekind@infradead.org>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
fs/jffs2/gc.c

index daff3341ff92b58cb72916678f69603e64ed5972..3a3cf225981f5a28daa3d2dc5fbce4e26ccf9c9d 100644 (file)
@@ -838,6 +838,8 @@ static int jffs2_garbage_collect_deletion_dirent(struct jffs2_sb_info *c, struct
 
                for (raw = f->inocache->nodes; raw != (void *)f->inocache; raw = raw->next_in_ino) {
 
+                       cond_resched();
+
                        /* We only care about obsolete ones */
                        if (!(ref_obsolete(raw)))
                                continue;