From: Liu Bo Date: Wed, 29 Aug 2012 07:07:55 +0000 (-0600) Subject: Btrfs: fix a bug in checking whether a inode is already in log X-Git-Tag: v3.7-rc1~71^2~86 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=46d8bc34248f3a94dea910137d1ddf5fb1e3a1cc;p=pandora-kernel.git Btrfs: fix a bug in checking whether a inode is already in log This is based on Josef's "Btrfs: turbo charge fsync". The current btrfs checks if an inode is in log by comparing root's last_log_commit to inode's last_sub_trans[2]. But the problem is that this root->last_log_commit is shared among inodes. Say we have N inodes to be logged, after the first inode, root's last_log_commit is updated and the N-1 remained files will be skipped. This fixes the bug by keeping a local copy of root's last_log_commit inside each inode and this local copy will be maintained itself. [1]: we regard each log transaction as a subset of btrfs's transaction, i.e. sub_trans Signed-off-by: Liu Bo --- Reading git-diff-tree failed