summaryrefslogtreecommitdiffstats
path: root/fs/jbd2/commit.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-12-27 20:09:41 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2018-12-27 20:09:41 -0500
commitf6b1495fba0b66cfa05efa0ca2370513b79b45b6 (patch)
tree0718aab1784d4a65474404029e72ab288531462a /fs/jbd2/commit.c
parentbc77789a491cdc6f47e5bbd1d04ddd283d64658b (diff)
parent18f2c4fcebf2582f96cbd5f2238f4f354a0e4847 (diff)
Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 updates from Ted Ts'o: "All cleanups and bug fixes; most notably, fix some problems discovered in ext4's NFS support, and fix an ioctl (EXT4_IOC_GROUP_ADD) used by old versions of e2fsprogs which we accidentally broke a while back. Also fixed some error paths in ext4's quota and inline data support. Finally, improve tail latency in jbd2's commit code" * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: check for shutdown and r/o file system in ext4_write_inode() ext4: force inode writes when nfsd calls commit_metadata() ext4: avoid declaring fs inconsistent due to invalid file handles ext4: include terminating u32 in size of xattr entries when expanding inodes ext4: compare old and new mode before setting update_mode flag ext4: fix EXT4_IOC_GROUP_ADD ioctl ext4: hard fail dax mount on unsupported devices jbd2: update locking documentation for transaction_t ext4: remove redundant condition check jbd2: clean up indentation issue, replace spaces with tab ext4: clean up indentation issues, remove extraneous tabs ext4: missing unlock/put_page() in ext4_try_to_write_inline_data() ext4: fix possible use after free in ext4_quota_enable jbd2: avoid long hold times of j_state_lock while committing a transaction ext4: add ext4_sb_bread() to disambiguate ENOMEM cases
Diffstat (limited to 'fs/jbd2/commit.c')
-rw-r--r--fs/jbd2/commit.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
index 150cc030b4d7..2eb55c3361a8 100644
--- a/fs/jbd2/commit.c
+++ b/fs/jbd2/commit.c
@@ -439,6 +439,8 @@ void jbd2_journal_commit_transaction(journal_t *journal)
439 finish_wait(&journal->j_wait_updates, &wait); 439 finish_wait(&journal->j_wait_updates, &wait);
440 } 440 }
441 spin_unlock(&commit_transaction->t_handle_lock); 441 spin_unlock(&commit_transaction->t_handle_lock);
442 commit_transaction->t_state = T_SWITCH;
443 write_unlock(&journal->j_state_lock);
442 444
443 J_ASSERT (atomic_read(&commit_transaction->t_outstanding_credits) <= 445 J_ASSERT (atomic_read(&commit_transaction->t_outstanding_credits) <=
444 journal->j_max_transaction_buffers); 446 journal->j_max_transaction_buffers);
@@ -505,6 +507,7 @@ void jbd2_journal_commit_transaction(journal_t *journal)
505 atomic_sub(atomic_read(&journal->j_reserved_credits), 507 atomic_sub(atomic_read(&journal->j_reserved_credits),
506 &commit_transaction->t_outstanding_credits); 508 &commit_transaction->t_outstanding_credits);
507 509
510 write_lock(&journal->j_state_lock);
508 trace_jbd2_commit_flushing(journal, commit_transaction); 511 trace_jbd2_commit_flushing(journal, commit_transaction);
509 stats.run.rs_flushing = jiffies; 512 stats.run.rs_flushing = jiffies;
510 stats.run.rs_locked = jbd2_time_diff(stats.run.rs_locked, 513 stats.run.rs_locked = jbd2_time_diff(stats.run.rs_locked,