diff options
-rw-r--r-- | fs/jbd2/checkpoint.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/jbd2/checkpoint.c b/fs/jbd2/checkpoint.c index 9ffb19cf376b..1fbf59938cc0 100644 --- a/fs/jbd2/checkpoint.c +++ b/fs/jbd2/checkpoint.c | |||
@@ -115,8 +115,6 @@ void __jbd2_log_wait_for_space(journal_t *journal) | |||
115 | 115 | ||
116 | nblocks = jbd2_space_needed(journal); | 116 | nblocks = jbd2_space_needed(journal); |
117 | while (jbd2_log_space_left(journal) < nblocks) { | 117 | while (jbd2_log_space_left(journal) < nblocks) { |
118 | if (journal->j_flags & JBD2_ABORT) | ||
119 | return; | ||
120 | write_unlock(&journal->j_state_lock); | 118 | write_unlock(&journal->j_state_lock); |
121 | mutex_lock(&journal->j_checkpoint_mutex); | 119 | mutex_lock(&journal->j_checkpoint_mutex); |
122 | 120 | ||
@@ -132,6 +130,10 @@ void __jbd2_log_wait_for_space(journal_t *journal) | |||
132 | * trace for forensic evidence. | 130 | * trace for forensic evidence. |
133 | */ | 131 | */ |
134 | write_lock(&journal->j_state_lock); | 132 | write_lock(&journal->j_state_lock); |
133 | if (journal->j_flags & JBD2_ABORT) { | ||
134 | mutex_unlock(&journal->j_checkpoint_mutex); | ||
135 | return; | ||
136 | } | ||
135 | spin_lock(&journal->j_list_lock); | 137 | spin_lock(&journal->j_list_lock); |
136 | nblocks = jbd2_space_needed(journal); | 138 | nblocks = jbd2_space_needed(journal); |
137 | space_left = jbd2_log_space_left(journal); | 139 | space_left = jbd2_log_space_left(journal); |