Btrfs: noinline the cluster searching functions

When profiling the find cluster code it's hard to tell where we are spending our
time because the bitmap and non-bitmap functions get inlined by the compiler, so
make that not happen.  Thanks,

Signed-off-by: Josef Bacik <josef@redhat.com>
This commit is contained in:
Josef Bacik 2011-05-25 13:07:37 -04:00
parent 86d4a77ba3
commit 3de85bb95c

View File

@ -2142,10 +2142,11 @@ again:
/* /*
* This searches the block group for just extents to fill the cluster with. * This searches the block group for just extents to fill the cluster with.
*/ */
static int setup_cluster_no_bitmap(struct btrfs_block_group_cache *block_group, static noinline int
struct btrfs_free_cluster *cluster, setup_cluster_no_bitmap(struct btrfs_block_group_cache *block_group,
struct list_head *bitmaps, struct btrfs_free_cluster *cluster,
u64 offset, u64 bytes, u64 min_bytes) struct list_head *bitmaps, u64 offset, u64 bytes,
u64 min_bytes)
{ {
struct btrfs_free_space_ctl *ctl = block_group->free_space_ctl; struct btrfs_free_space_ctl *ctl = block_group->free_space_ctl;
struct btrfs_free_space *first = NULL; struct btrfs_free_space *first = NULL;
@ -2245,10 +2246,11 @@ static int setup_cluster_no_bitmap(struct btrfs_block_group_cache *block_group,
* This specifically looks for bitmaps that may work in the cluster, we assume * This specifically looks for bitmaps that may work in the cluster, we assume
* that we have already failed to find extents that will work. * that we have already failed to find extents that will work.
*/ */
static int setup_cluster_bitmap(struct btrfs_block_group_cache *block_group, static noinline int
struct btrfs_free_cluster *cluster, setup_cluster_bitmap(struct btrfs_block_group_cache *block_group,
struct list_head *bitmaps, struct btrfs_free_cluster *cluster,
u64 offset, u64 bytes, u64 min_bytes) struct list_head *bitmaps, u64 offset, u64 bytes,
u64 min_bytes)
{ {
struct btrfs_free_space_ctl *ctl = block_group->free_space_ctl; struct btrfs_free_space_ctl *ctl = block_group->free_space_ctl;
struct btrfs_free_space *entry; struct btrfs_free_space *entry;