]> git.karo-electronics.de Git - linux-beck.git/commit
xfs: optimize fsync on directories
authorChristoph Hellwig <hch@infradead.org>
Sun, 2 Oct 2011 14:25:16 +0000 (14:25 +0000)
committerAlex Elder <aelder@sgi.com>
Wed, 12 Oct 2011 02:15:09 +0000 (21:15 -0500)
commit1da2f2dbf2d2aaa1b0f6ca2f61fcf07e24eb659b
tree41340d0cb08191d0bba677391e238d3771443033
parent670ce93fef93bba8c8a422a79747385bec8e846a
xfs: optimize fsync on directories

Directories are only updated transactionally, which means fsync only
needs to flush the log the inode is currently dirty, but not bother
with checking for dirty data, non-transactional updates, and most
importanly doesn't have to flush disk caches except as part of a
transaction commit.

While the first two optimizations can't easily be measured, the
latter actually makes a difference when doing lots of fsync that do
not actually have to commit the inode, e.g. because an earlier fsync
already pushed the log far enough.

The new xfs_dir_fsync is identical to xfs_nfs_commit_metadata except
for the prototype, but I'm not sure creating a common helper for the
two is worth it given how simple the functions are.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Alex Elder <aelder@sgi.com>
fs/xfs/xfs_file.c
fs/xfs/xfs_trace.h