]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: make sure nbytes are right after log replay
authorJosef Bacik <jbacik@fusionio.com>
Fri, 5 Apr 2013 20:50:09 +0000 (20:50 +0000)
committerChris Mason <chris.mason@fusionio.com>
Sat, 13 Apr 2013 11:35:06 +0000 (07:35 -0400)
commit80aad0e55cb0e8e3c794657c22bd1b1fd63c8f69
tree69a58ddb7716fc17f515690b90de8dc928802c99
parent0c5c73fa7e7eb4a60640df97b91f944009046cde
Btrfs: make sure nbytes are right after log replay

While trying to track down a tree log replay bug I noticed that fsck was always
complaining about nbytes not being right for our fsynced file.  That is because
the new fsync stuff doesn't wait for ordered extents to complete, so the inodes
nbytes are not necessarily updated properly when we log it.  So to fix this we
need to set nbytes to whatever it is on the inode that is on disk, so when we
replay the extents we can just add the bytes that are being added as we replay
the extent.  This makes it work for the case that we have the wrong nbytes or
the case that we logged everything and nbytes is actually correct.  With this
I'm no longer getting nbytes errors out of btrfsck.

Cc: stable@vger.kernel.org
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
fs/btrfs/tree-log.c