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-05-30 10:23:27 -04:00
2012-07-25 16:15:07 -04:00
2012-03-22 01:45:34 +01:00
2012-10-01 15:19:01 -04:00
2012-07-25 19:19:10 -04:00
2012-10-01 15:19:06 -04:00
2012-07-25 23:28:38 +02:00
2011-12-21 19:14:09 +01:00
2009-01-06 09:38:55 -05:00
2012-08-28 16:53:33 -04:00
2012-03-22 01:45:34 +01:00
2012-10-01 15:19:00 -04:00
2012-10-01 15:19:04 -04:00
2012-08-28 16:53:33 -04:00
2012-07-23 15:41:40 -04:00
2012-08-28 16:53:38 -04:00
2012-08-28 16:53:38 -04:00
2012-03-22 11:52:54 +01:00
2012-08-29 11:36:22 -07:00
2012-08-28 16:53:38 -04:00
2012-05-29 23:28:33 -04:00
2008-09-25 11:04:06 -04:00
2012-10-01 15:19:00 -04:00
2012-05-31 16:49:53 -04:00
2012-10-01 15:19:05 -04:00
2012-10-01 15:19:05 -04:00
2012-10-01 15:19:04 -04:00
2012-10-01 15:19:01 -04:00
2012-10-01 15:19:03 -04:00
2012-07-23 16:28:03 -04:00
2011-05-06 12:34:03 +02:00
2009-06-10 11:29:53 -04:00
2012-03-28 20:31:37 -04:00
2012-03-29 09:57:44 -04:00
2011-04-25 16:46:11 +08:00
2012-10-01 15:19:06 -04:00
2012-10-01 15:19:03 -04:00
2012-07-25 19:19:10 -04:00
2011-12-21 19:14:16 +01:00
2012-08-28 16:53:23 -04:00
2012-03-22 01:45:34 +01:00
2012-03-20 21:48:21 +08:00
2012-07-25 19:19:10 -04:00
2012-08-04 12:15:35 +04:00
2012-05-30 10:23:33 -04:00
2012-03-22 11:52:54 +01:00
2012-05-30 10:23:41 -04:00
2012-10-01 15:19:01 -04:00
2012-06-14 21:29:16 -04:00
2012-05-30 10:23:43 -04:00
2012-07-30 17:25:14 -07:00
2012-08-28 16:53:26 -04:00
2012-06-14 21:29:16 -04:00
2012-10-01 15:19:01 -04:00
2012-07-25 23:30:19 +02:00
2012-07-23 16:28:06 -04:00
2012-08-29 11:36:22 -07:00
2011-06-17 14:54:18 -04:00
2012-08-29 11:36:22 -07:00
2012-10-01 15:19:06 -04:00
2011-05-02 13:57:22 +02:00
2012-10-01 15:19:06 -04:00
2012-03-22 01:45:34 +01:00
2012-10-01 15:18:53 -04:00
2012-10-01 15:18:53 -04:00
2008-09-25 15:41:59 -04:00
2012-08-29 11:36:22 -07:00
2012-08-28 16:53:39 -04:00
2012-05-30 10:23:27 -04:00
2011-02-01 11:12:29 -05:00
2012-03-20 21:48:21 +08:00