diff options
Diffstat (limited to 'fs/jbd2')
-rw-r--r-- | fs/jbd2/checkpoint.c | 3 | ||||
-rw-r--r-- | fs/jbd2/commit.c | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/fs/jbd2/checkpoint.c b/fs/jbd2/checkpoint.c index 1b7f282c1ae9..6914598022ce 100644 --- a/fs/jbd2/checkpoint.c +++ b/fs/jbd2/checkpoint.c | |||
@@ -353,7 +353,8 @@ restart: | |||
353 | } | 353 | } |
354 | retry = __process_buffer(journal, jh, bhs, &batch_count, | 354 | retry = __process_buffer(journal, jh, bhs, &batch_count, |
355 | transaction); | 355 | transaction); |
356 | if (!retry && lock_need_resched(&journal->j_list_lock)){ | 356 | if (!retry && (need_resched() || |
357 | spin_needbreak(&journal->j_list_lock))) { | ||
357 | spin_unlock(&journal->j_list_lock); | 358 | spin_unlock(&journal->j_list_lock); |
358 | retry = 1; | 359 | retry = 1; |
359 | break; | 360 | break; |
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c index da8d0eb3b7b9..4f302d279279 100644 --- a/fs/jbd2/commit.c +++ b/fs/jbd2/commit.c | |||
@@ -341,7 +341,7 @@ write_out_data: | |||
341 | put_bh(bh); | 341 | put_bh(bh); |
342 | } | 342 | } |
343 | 343 | ||
344 | if (lock_need_resched(&journal->j_list_lock)) { | 344 | if (need_resched() || spin_needbreak(&journal->j_list_lock)) { |
345 | spin_unlock(&journal->j_list_lock); | 345 | spin_unlock(&journal->j_list_lock); |
346 | goto write_out_data; | 346 | goto write_out_data; |
347 | } | 347 | } |