diff options
author | Lukas Czerner <lczerner@redhat.com> | 2010-11-02 14:07:17 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2010-11-02 14:07:17 -0400 |
commit | f4245bd4ebf903541ba758ad06c118626d8c6f18 (patch) | |
tree | a599839d8d3ed672d147036b885d4fec548adf65 | |
parent | c8ddb2713c624f432fa5fe3c7ecffcdda46ea0d4 (diff) | |
download | op-kernel-dev-f4245bd4ebf903541ba758ad06c118626d8c6f18.zip op-kernel-dev-f4245bd4ebf903541ba758ad06c118626d8c6f18.tar.gz |
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.c | 3 |
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; } |