• C
    xfs: optimize fsync on directories · 1da2f2db
    Christoph Hellwig 提交于
    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: NChristoph Hellwig <hch@lst.de>
    Signed-off-by: NAlex Elder <aelder@sgi.com>
    
    1da2f2db
xfs_file.c 31.2 KB