Btrfs: optimize fsyncs on old files
authorChris Mason <chris.mason@oracle.com>
Tue, 24 Mar 2009 14:24:31 +0000 (10:24 -0400)
committerChris Mason <chris.mason@oracle.com>
Tue, 24 Mar 2009 20:14:52 +0000 (16:14 -0400)
commitaf4176b49c5ee15a9c9b10720c92456b28e7aac7
treea8f763a172e6fc19ef6ac24f04d6b88337c8a1b6
parent12fcfd22fe5bf4fe74710232098bc101af497995
Btrfs: optimize fsyncs on old files

The fsync log has code to make sure all of the parents of a file are in the
log along with the file.  It uses a minimal log of the parent directory
inodes, just enough to get the parent directory on disk.

If the transaction that originally created a file is fully on disk,
and the file hasn't been renamed or linked into other directories, we
can safely skip the parent directory walk.  We know the file is on disk
somewhere and we can go ahead and just log that single file.

This is more important now because unrelated unlinks in the parent directory
might make us force a commit if we try to log the parent.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/tree-log.c