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)
downloadkernel_samsung_crespo-f4245bd4ebf903541ba758ad06c118626d8c6f18.zip
kernel_samsung_crespo-f4245bd4ebf903541ba758ad06c118626d8c6f18.tar.gz
kernel_samsung_crespo-f4245bd4ebf903541ba758ad06c118626d8c6f18.tar.bz2
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 40131b7..8d1d942 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -2740,7 +2740,8 @@ cont_thread:
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;
}