summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/btrfs_inode.h
diff options
context:
space:
mode:
authorChris Mason2008-09-11 21:53:12 +0200
committerChris Mason2008-09-25 17:04:07 +0200
commit49eb7e46d47ea72a9bd2a5f8cedb04f5159cc277 (patch)
treec3d05588c3cf73453673206214fadedc07bd79d7 /fs/btrfs/btrfs_inode.h
parentBtrfs: Fix releasepage to properly keep dirty and writeback pages (diff)
downloadkernel-qcow2-linux-49eb7e46d47ea72a9bd2a5f8cedb04f5159cc277.tar.gz
kernel-qcow2-linux-49eb7e46d47ea72a9bd2a5f8cedb04f5159cc277.tar.xz
kernel-qcow2-linux-49eb7e46d47ea72a9bd2a5f8cedb04f5159cc277.zip
Btrfs: Dir fsync optimizations
Drop i_mutex during the commit Don't bother doing the fsync at all unless the dir is marked as dirtied and needing fsync in this transaction. For directories, this means that someone has unlinked a file from the dir without fsyncing the file. Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/btrfs_inode.h')
-rw-r--r--fs/btrfs/btrfs_inode.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h
index fcc8cf27e906..0577fda2168a 100644
--- a/fs/btrfs/btrfs_inode.h
+++ b/fs/btrfs/btrfs_inode.h
@@ -56,6 +56,9 @@ struct btrfs_inode {
* transid that last logged this inode
*/
u64 logged_trans;
+
+ /* trans that last made a change that should be fully fsync'd */
+ u64 log_dirty_trans;
u64 delalloc_bytes;
u64 disk_i_size;
u32 flags;