jbd2: speedup jbd2_journal_dirty_metadata()
authorJan Kara <jack@suse.cz>
Sun, 12 Jul 2015 22:11:30 +0000 (18:11 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 12 Jul 2015 22:11:30 +0000 (18:11 -0400)
commit6e06ae88edae77379bef7c0cb7d3c2dd88676867
tree7a8fd3e3ccbb6d65bb420ddc48454cb5a72efb5c
parentbc0195aad0daa2ad5b0d76cce22b167bc3435590
jbd2: speedup jbd2_journal_dirty_metadata()

It is often the case that we mark buffer as having dirty metadata when
the buffer is already in that state (frequent for bitmaps, inode table
blocks, superblock). Thus it is unnecessary to contend on grabbing
journal head reference and bh_state lock. Avoid that by checking whether
any modification to the buffer is needed before grabbing any locks or
references.

[ Note: this is a fixed version of commit 2143c1965a761, which was
  reverted in ebeaa8ddb3663b5 due to a false positive triggering of an
  assertion check. -- Ted ]

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/jbd2/transaction.c