Btrfs: drop dir i_size when adding new names on replay
authorJosef Bacik <jbacik@fusionio.com>
Wed, 11 Sep 2013 18:17:00 +0000 (14:17 -0400)
committerChris Mason <chris.mason@fusionio.com>
Sat, 21 Sep 2013 15:05:25 +0000 (11:05 -0400)
commitd555438b6e1dad139d26ab807f0af68a1fa47a86
tree5d9282ac3f56598c504815774b47d96241335959
parentdd8e721773fdab5ccc7fde44ec57e30b563243b2
Btrfs: drop dir i_size when adding new names on replay

So if we have dir_index items in the log that means we also have the inode item
as well, which means that the inode's i_size is correct.  However when we
process dir_index'es we call btrfs_add_link() which will increase the
directory's i_size for the new entry.  To fix this we need to just set the dir
items i_size to 0, and then as we find dir_index items we adjust the i_size.
btrfs_add_link() will do it for new entries, and if the entry already exists we
can just add the name_len to the i_size ourselves.  Thanks,

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