Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1643322

[PATCH] jbd2: preserve original nofs flag during journal restart

From Tahsin Erdogan <tahsin@google.com>
Newsgroups linux.kernel
Subject [PATCH] jbd2: preserve original nofs flag during journal restart
Date 2017-05-17 14:40 +0200
Message-ID <tI6pc-35o-27@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


When a transaction starts, start_this_handle() saves current
PF_MEMALLOC_NOFS value so that it can be restored at journal stop time.
Journal restart is a special case that calls start_this_handle() without
stopping the transaction. start_this_handle() isn't aware that the
original value is already stored so it overwrites it with current value.

For instance, a call sequence like below leaves PF_MEMALLOC_NOFS flag set
at the end:

  jbd2_journal_start()
  jbd2__journal_restart()
  jbd2_journal_stop()

Make jbd2__journal_restart() restore the original value before calling
start_this_handle().

Fixes: 81378da64de6 ("jbd2: mark the transaction context with the scope GFP_NOFS context")
Signed-off-by: Tahsin Erdogan <tahsin@google.com>
---
 fs/jbd2/transaction.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c
index 9ee4832b6f8b..dfd6afebdfeb 100644
--- a/fs/jbd2/transaction.c
+++ b/fs/jbd2/transaction.c
@@ -680,6 +680,7 @@ 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;
+	memalloc_nofs_restore(handle->saved_alloc_context);
 	ret = start_this_handle(journal, handle, gfp_mask);
 	return ret;
 }
-- 
2.13.0.303.g4ebf302169-goog

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH] jbd2: preserve original nofs flag during journal restart Tahsin Erdogan <tahsin@google.com> - 2017-05-17 14:40 +0200
  Re: [PATCH] jbd2: preserve original nofs flag during journal restart Jan Kara <jack@suse.cz> - 2017-05-17 16:10 +0200
  Re: [PATCH] jbd2: preserve original nofs flag during journal restart Michal Hocko <mhocko@kernel.org> - 2017-05-17 16:20 +0200
    Re: [PATCH] jbd2: preserve original nofs flag during journal restart Jan Kara <jack@suse.cz> - 2017-05-17 17:00 +0200
      Re: [PATCH] jbd2: preserve original nofs flag during journal restart Michal Hocko <mhocko@kernel.org> - 2017-05-17 17:30 +0200
        [PATCH v2] jbd2: preserve original nofs flag during journal restart Tahsin Erdogan <tahsin@google.com> - 2017-05-17 18:20 +0200
          Re: [PATCH v2] jbd2: preserve original nofs flag during journal  restart Michal Hocko <mhocko@kernel.org> - 2017-05-18 11:20 +0200
            Re: [PATCH v2] jbd2: preserve original nofs flag during journal  restart Jan Kara <jack@suse.cz> - 2017-05-18 11:40 +0200
              [PATCH v3] jbd2: preserve original nofs flag during journal restart Tahsin Erdogan <tahsin@google.com> - 2017-05-18 18:30 +0200
                Re: [PATCH v3] jbd2: preserve original nofs flag during journal  restart Theodore Ts'o <tytso@mit.edu> - 2017-05-20 06:20 +0200

csiph-web