aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Czerner <lczerner@redhat.com>2010-11-02 14:07:17 -0400
committerTheodore Ts'o <tytso@mit.edu>2010-11-02 14:07:17 -0400
commitf4245bd4ebf903541ba758ad06c118626d8c6f18 (patch)
treea599839d8d3ed672d147036b885d4fec548adf65
parentc8ddb2713c624f432fa5fe3c7ecffcdda46ea0d4 (diff)
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>
-rw-r--r--fs/ext4/super.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 40131b777af6..8d1d9423ce9a 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -2740,7 +2740,8 @@ cont_thread:
2740 if (freezing(current)) 2740 if (freezing(current))
2741 refrigerator(); 2741 refrigerator();
2742 2742
2743 if (time_after_eq(jiffies, next_wakeup)) { 2743 if ((time_after_eq(jiffies, next_wakeup)) ||
2744 (MAX_JIFFY_OFFSET == next_wakeup)) {
2744 cond_resched(); 2745 cond_resched();
2745 continue; 2746 continue;
2746 } 2747 }