Chris Mason 257c62e1bc Btrfs: avoid tree log commit when there are no changes
rpm has a habit of running fdatasync when the file hasn't
changed.  We already detect if a file hasn't been changed
in the current transaction but it might have been sent to
the tree-log in this transaction and not changed since
the last call to fsync.

In this case, we want to avoid a tree log sync, which includes
a number of synchronous writes and barriers.  This commit
extends the existing tracking of the last transaction to change
a file to also track the last sub-transaction.

The end result is that rpm -ivh and -Uvh are roughly twice as fast,
and on par with ext3.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2009-10-13 13:35:12 -04:00
..
2008-09-25 11:04:06 -04:00
2009-02-04 09:28:28 -05:00
2009-04-02 16:46:06 -04:00
2009-01-05 21:25:51 -05:00
2009-09-28 16:29:42 -04:00
2009-09-29 13:51:04 -04:00
2009-02-04 09:29:13 -05:00