Sfoglia il codice sorgente

[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>
Ingo Molnar 18 anni fa
parent
commit
944be0b224
1 ha cambiato i file con 3 aggiunte e 1 eliminazioni
  1. 3 1
      kernel/exit.c

+ 3 - 1
kernel/exit.c

@@ -430,8 +430,10 @@ static void close_files(struct files_struct * files)
 		while (set) {
 		while (set) {
 			if (set & 1) {
 			if (set & 1) {
 				struct file * file = xchg(&fdt->fd[i], NULL);
 				struct file * file = xchg(&fdt->fd[i], NULL);
-				if (file)
+				if (file) {
 					filp_close(file, files);
 					filp_close(file, files);
+					cond_resched();
+				}
 			}
 			}
 			i++;
 			i++;
 			set >>= 1;
 			set >>= 1;