The following commit has been merged in the linux branch: commit 4722607db6a78bd7748c51fa4c8d7371da797254 Author: Chris Mason chris.mason@oracle.com Date: Tue Oct 13 12:55:09 2009 -0400
Btrfs: only write one super copy during fsync
During a tree-log commit for fsync, we've been writing at least two copies of the super block and forcing them to disk.
The other filesystems write only one, and this change brings us on par with them. A full transaction commit will write all the super copies, so we still have redundant info written on a regular basis.
Signed-off-by: Chris Mason chris.mason@oracle.com
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index 78f6254..6d9ec28 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c @@ -2092,7 +2092,7 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans, * the running transaction open, so a full commit can't hop * in and cause problems either. */ - write_ctree_super(trans, root->fs_info->tree_root, 2); + write_ctree_super(trans, root->fs_info->tree_root, 1); ret = 0;
out_wake_log_root: