Bläddra i källkod

[PATCH] mmput() might sleep

exit_aio() and exit_mmap() can sleep.  But it's easy to accidentally call
mmput() from inside locks.

Cc: Dave Peterson <dsp@llnl.gov>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton 19 år sedan
förälder
incheckning
0ae26f1b31
1 ändrade filer med 2 tillägg och 0 borttagningar
  1. 2 0
      kernel/fork.c

+ 2 - 0
kernel/fork.c

@@ -368,6 +368,8 @@ void fastcall __mmdrop(struct mm_struct *mm)
  */
  */
 void mmput(struct mm_struct *mm)
 void mmput(struct mm_struct *mm)
 {
 {
+	might_sleep();
+
 	if (atomic_dec_and_test(&mm->mm_users)) {
 	if (atomic_dec_and_test(&mm->mm_users)) {
 		exit_aio(mm);
 		exit_aio(mm);
 		exit_mmap(mm);
 		exit_mmap(mm);