Liu Bo 46d8bc3424 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 <bo.li.liu@oracle.com>
2012-10-01 15:19:06 -04:00
..
2012-07-14 16:34:32 +04:00
2012-07-30 17:25:16 -07:00
2012-07-14 16:38:34 +04:00
2012-08-17 06:56:39 -07:00
2012-07-14 16:34:32 +04:00
2012-07-14 16:34:47 +04:00
2012-07-14 16:34:47 +04:00
2012-07-14 16:38:34 +04:00
2012-07-16 14:24:43 -05:00
2012-07-14 16:34:32 +04:00
2012-09-04 18:45:54 +02:00
2012-08-04 12:15:38 +04:00
2012-07-14 16:34:47 +04:00
2012-07-14 16:34:47 +04:00
2012-07-30 17:25:19 -07:00
2012-07-14 16:34:47 +04:00
2012-07-14 16:34:47 +04:00
2012-07-30 17:25:16 -07:00
2012-07-14 16:34:32 +04:00
2012-07-14 16:34:47 +04:00
2012-08-22 17:41:09 +03:00
2012-07-22 23:58:16 +04:00
2012-07-14 16:34:47 +04:00
2012-03-20 21:29:46 -04:00
2012-03-20 21:29:46 -04:00
2012-08-20 10:11:47 -07:00
2012-07-30 17:25:21 -07:00
2012-01-03 22:52:39 -05:00
2012-07-14 16:32:47 +04:00
2012-07-14 16:38:34 +04:00
2012-03-20 21:29:38 -04:00
2012-07-14 16:32:48 +04:00
2012-08-22 10:30:10 -04:00
2012-09-22 20:48:18 -04:00
2012-08-04 01:24:44 +04:00