diff options
author | Josef Bacik <josef@redhat.com> | 2011-05-11 15:26:06 -0400 |
---|---|---|
committer | Josef Bacik <josef@redhat.com> | 2011-05-23 13:03:12 -0400 |
commit | d82a6f1d7e8b61ed5996334d0db66651bb43641d (patch) | |
tree | 5738ec75f7679bdc1b97aecbc5cad3464cc65541 /fs/btrfs/extent-tree.c | |
parent | 7e2355ba1a11649f0b212a29fdb9f47476f1248e (diff) | |
download | kernel_samsung_smdk4412-d82a6f1d7e8b61ed5996334d0db66651bb43641d.zip kernel_samsung_smdk4412-d82a6f1d7e8b61ed5996334d0db66651bb43641d.tar.gz kernel_samsung_smdk4412-d82a6f1d7e8b61ed5996334d0db66651bb43641d.tar.bz2 |
Btrfs: kill BTRFS_I(inode)->block_group
Originally this was going to be used as a way to give hints to the allocator,
but frankly we can get much better hints elsewhere and it's not even used at all
for anything usefull. In addition to be completely useless, when we initialize
an inode we try and find a freeish block group to set as the inodes block group,
and with a completely full 40gb fs this takes _forever_, so I imagine with say
1tb fs this is just unbearable. So just axe the thing altoghether, we don't
need it and it saves us 8 bytes in the inode and saves us 500 microseconds per
inode lookup in my testcase. Thanks,
Signed-off-by: Josef Bacik <josef@redhat.com>
Diffstat (limited to 'fs/btrfs/extent-tree.c')
-rw-r--r-- | fs/btrfs/extent-tree.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index a2ca561..9f0a4e3 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -5319,6 +5319,7 @@ checks: btrfs_add_free_space(block_group, offset, search_start - offset); BUG_ON(offset > search_start); + btrfs_put_block_group(block_group); break; loop: failed_cluster_refill = false; @@ -5411,14 +5412,7 @@ loop: ret = -ENOSPC; } else if (!ins->objectid) { ret = -ENOSPC; - } - - /* we found what we needed */ - if (ins->objectid) { - if (!(data & BTRFS_BLOCK_GROUP_DATA)) - trans->block_group = block_group->key.objectid; - - btrfs_put_block_group(block_group); + } else if (ins->objectid) { ret = 0; } |