summaryrefslogtreecommitdiffstats
path: root/fs/ext4
diff options
context:
space:
mode:
authorLukas Czerner <lczerner@redhat.com>2010-11-02 19:07:17 +0100
committerTheodore Ts'o <tytso@mit.edu>2010-11-02 19:07:17 +0100
commitf4245bd4ebf903541ba758ad06c118626d8c6f18 (patch)
treea599839d8d3ed672d147036b885d4fec548adf65 /fs/ext4
parentLinux 2.6.37-rc1 (diff)
downloadlinux-f4245bd4ebf903541ba758ad06c118626d8c6f18.tar.xz
linux-f4245bd4ebf903541ba758ad06c118626d8c6f18.zip
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>
Diffstat (limited to 'fs/ext4')
-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:
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;
}