diff options
author | Ingo Molnar <mingo@kernel.org> | 2017-06-20 12:28:21 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-06-20 12:28:21 +0200 |
commit | 902b31941327a0e9c0ca9eb7750414ae41bf8a89 (patch) | |
tree | 300f4226c87e6df403cda861ab6766b23d278f09 /fs/jbd2 | |
parent | sched/fair: WARN() and refuse to set buddy when !se->on_rq (diff) | |
parent | sched/wait: Disambiguate wq_entry->task_list and wq_head->task_list naming (diff) | |
download | linux-902b31941327a0e9c0ca9eb7750414ae41bf8a89.tar.xz linux-902b31941327a0e9c0ca9eb7750414ae41bf8a89.zip |
Merge branch 'WIP.sched/core' into sched/core
Conflicts:
kernel/sched/Makefile
Pick up the waitqueue related renames - it didn't get much feedback,
so it appears to be uncontroversial. Famous last words? ;-)
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'fs/jbd2')
-rw-r--r-- | fs/jbd2/journal.c | 4 | ||||
-rw-r--r-- | fs/jbd2/transaction.c | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index ebad34266bcf..7d5ef3bf3f3e 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -2579,10 +2579,10 @@ restart: wait_queue_head_t *wq; DEFINE_WAIT_BIT(wait, &jinode->i_flags, __JI_COMMIT_RUNNING); wq = bit_waitqueue(&jinode->i_flags, __JI_COMMIT_RUNNING); - prepare_to_wait(wq, &wait.wait, TASK_UNINTERRUPTIBLE); + prepare_to_wait(wq, &wait.wq_entry, TASK_UNINTERRUPTIBLE); spin_unlock(&journal->j_list_lock); schedule(); - finish_wait(wq, &wait.wait); + finish_wait(wq, &wait.wq_entry); goto restart; } diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c index 9ee4832b6f8b..2d30a6da7013 100644 --- a/fs/jbd2/transaction.c +++ b/fs/jbd2/transaction.c @@ -680,6 +680,12 @@ int jbd2__journal_restart(handle_t *handle, int nblocks, gfp_t gfp_mask) rwsem_release(&journal->j_trans_commit_map, 1, _THIS_IP_); handle->h_buffer_credits = nblocks; + /* + * Restore the original nofs context because the journal restart + * is basically the same thing as journal stop and start. + * start_this_handle will start a new nofs context. + */ + memalloc_nofs_restore(handle->saved_alloc_context); ret = start_this_handle(journal, handle, gfp_mask); return ret; } |