diff options
author | Nigel Cunningham <nigel@tuxonice.net> | 2012-02-03 19:59:41 +1100 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2012-03-13 22:36:44 +0100 |
commit | 35c80422afc8394d1ecbab3c0b17fcd539e4e5c2 (patch) | |
tree | ff01c1ed95ea4ca6656f43e87f29a1a54a633106 | |
parent | 37f08be11be9a7d9351fb1b9b408259519a126f3 (diff) | |
download | lwn-35c80422afc8394d1ecbab3c0b17fcd539e4e5c2.tar.gz lwn-35c80422afc8394d1ecbab3c0b17fcd539e4e5c2.zip |
PM / Sleep: JBD and JBD2 missing set_freezable()
With the latest and greatest changes to the freezer, I started seeing
panics that were caused by jbd2 running post-process freezing and
hitting the canary BUG_ON for non-TuxOnIce I/O submission. I've traced
this back to a lack of set_freezable calls in both jbd and jbd2. Since
they're clearly meant to be frozen (there are tests for freezing()), I
submit the following patch to add the missing calls.
Signed-off-by: Nigel Cunningham <nigel@tuxonice.net>
Acked-by: Jan Kara <jack@suse.cz>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
-rw-r--r-- | fs/jbd/journal.c | 2 | ||||
-rw-r--r-- | fs/jbd2/journal.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c index 59c09f9541b5..89cd985aee06 100644 --- a/fs/jbd/journal.c +++ b/fs/jbd/journal.c @@ -129,6 +129,8 @@ static int kjournald(void *arg) setup_timer(&journal->j_commit_timer, commit_timeout, (unsigned long)current); + set_freezable(); + /* Record that the journal thread is running */ journal->j_task = current; wake_up(&journal->j_wait_done_commit); diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index c0a5f9f1b127..663e47cbaa78 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -139,6 +139,8 @@ static int kjournald2(void *arg) setup_timer(&journal->j_commit_timer, commit_timeout, (unsigned long)current); + set_freezable(); + /* Record that the journal thread is running */ journal->j_task = current; wake_up(&journal->j_wait_done_commit); |