Kaynağa Gözat

ext4: fix lazyinit hang after removing request

When the request has been removed from the list and no other request
has been issued, we will end up with next wakeup scheduled to
MAX_JIFFY_OFFSET which is bad. So check for that.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Lukas Czerner 15 yıl önce
ebeveyn
işleme
f4245bd4eb
1 değiştirilmiş dosya ile 2 ekleme ve 1 silme
  1. 2 1
      fs/ext4/super.c

+ 2 - 1
fs/ext4/super.c

@@ -2740,7 +2740,8 @@ static int ext4_lazyinit_thread(void *arg)
 		if (freezing(current))
 			refrigerator();
 
-		if (time_after_eq(jiffies, next_wakeup)) {
+		if ((time_after_eq(jiffies, next_wakeup)) ||
+		    (MAX_JIFFY_OFFSET == next_wakeup)) {
 			cond_resched();
 			continue;
 		}