Btrfs: Count space allocated to file in bytes
This patch makes btrfs count space allocated to file in bytes instead
of 512 byte sectors.
Everything else in btrfs uses a byte count instead of sector sizes or
blocks sizes, so this fits better.
Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 88bbfd9..8df719a 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -113,7 +113,7 @@
inode_item->generation = cpu_to_le64(1);
inode_item->size = cpu_to_le64(3);
inode_item->nlink = cpu_to_le32(1);
- inode_item->nblocks = cpu_to_le64(1);
+ inode_item->nbytes = cpu_to_le64(root->leafsize);
inode_item->mode = cpu_to_le32(S_IFDIR | 0755);
btrfs_set_root_bytenr(&root_item, leaf->start);
@@ -598,8 +598,8 @@
ret = overwrite_item(trans, root, path, eb, slot, key);
BUG_ON(ret);
- /* btrfs_drop_extents changes i_blocks, update it here */
- inode->i_blocks += (extent_end - start) >> 9;
+ /* btrfs_drop_extents changes i_bytes & i_blocks, update it here */
+ inode_add_bytes(inode, extent_end - start);
btrfs_update_inode(trans, root, inode);
out:
if (inode)