summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorArtem Bityutskiy <dedekind@infradead.org>2006-12-19 15:45:23 +0200
committerDavid Woodhouse <dwmw2@infradead.org>2006-12-19 14:20:16 +0000
commitaba54da3d05e910199ea8255992c244c9abadd91 (patch)
treefc634ff11819f2f94ef23478d6471757dc21c6d6 /fs
parent0bf3a9d82adc62fb05e3f108ddd46eb088960f26 (diff)
downloadlinux-aba54da3d05e910199ea8255992c244c9abadd91.tar.gz
linux-aba54da3d05e910199ea8255992c244c9abadd91.tar.bz2
linux-aba54da3d05e910199ea8255992c244c9abadd91.zip
[JFFS2] add cond_resched() when garbage collecting deletion dirent
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>
Diffstat (limited to 'fs')
-rw-r--r--fs/jffs2/gc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/jffs2/gc.c b/fs/jffs2/gc.c
index daff3341ff92..3a3cf225981f 100644
--- a/fs/jffs2/gc.c
+++ b/fs/jffs2/gc.c
@@ -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;