From: Ingo Molnar <mingo@elte.hu>
Date: Mon, 12 Feb 2007 08:52:26 +0000 (-0800)
Subject: [PATCH] close_files(): add scheduling point
X-Git-Tag: v2.6.21-rc1~274^2~176
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=944be0b2;p=users%2Fjedix%2Flinux-maple.git

[PATCH] close_files(): add scheduling point

close_files() can sometimes take long enough to trigger the soft lockup
detector.

Cc: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
---

diff --git a/kernel/exit.c b/kernel/exit.c
index bc71fdfcd8a7..14f17033f563 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -430,8 +430,10 @@ static void close_files(struct files_struct * files)
 		while (set) {
 			if (set & 1) {
 				struct file * file = xchg(&fdt->fd[i], NULL);
-				if (file)
+				if (file) {
 					filp_close(file, files);
+					cond_resched();
+				}
 			}
 			i++;
 			set >>= 1;