Commit b105e927 authored by David Sterba's avatar David Sterba

btrfs: add __cold attribute to more functions

The attribute can mark functions supposed to be called rarely if at all
and the text can be moved to sections far from the other code. The
attribute has been added to several functions already, this patch is
based on hints given by gcc -Wsuggest-attribute=cold.

The net effect of this patch is decrease of btrfs.ko by 1000-1300,
depending on the config options.
Reviewed-by: default avatarNikolay Borisov <nborisov@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 4c66e0d4
...@@ -2577,7 +2577,7 @@ static int btrfs_validate_write_super(struct btrfs_fs_info *fs_info, ...@@ -2577,7 +2577,7 @@ static int btrfs_validate_write_super(struct btrfs_fs_info *fs_info,
return ret; return ret;
} }
int open_ctree(struct super_block *sb, int __cold open_ctree(struct super_block *sb,
struct btrfs_fs_devices *fs_devices, struct btrfs_fs_devices *fs_devices,
char *options) char *options)
{ {
...@@ -3962,7 +3962,7 @@ int btrfs_commit_super(struct btrfs_fs_info *fs_info) ...@@ -3962,7 +3962,7 @@ int btrfs_commit_super(struct btrfs_fs_info *fs_info)
return btrfs_commit_transaction(trans); return btrfs_commit_transaction(trans);
} }
void close_ctree(struct btrfs_fs_info *fs_info) void __cold close_ctree(struct btrfs_fs_info *fs_info)
{ {
int ret; int ret;
......
...@@ -49,10 +49,10 @@ struct extent_buffer *btrfs_find_create_tree_block( ...@@ -49,10 +49,10 @@ struct extent_buffer *btrfs_find_create_tree_block(
struct btrfs_fs_info *fs_info, struct btrfs_fs_info *fs_info,
u64 bytenr); u64 bytenr);
void btrfs_clean_tree_block(struct extent_buffer *buf); void btrfs_clean_tree_block(struct extent_buffer *buf);
int open_ctree(struct super_block *sb, int __cold open_ctree(struct super_block *sb,
struct btrfs_fs_devices *fs_devices, struct btrfs_fs_devices *fs_devices,
char *options); char *options);
void close_ctree(struct btrfs_fs_info *fs_info); void __cold close_ctree(struct btrfs_fs_info *fs_info);
int write_all_supers(struct btrfs_fs_info *fs_info, int max_mirrors); int write_all_supers(struct btrfs_fs_info *fs_info, int max_mirrors);
struct buffer_head *btrfs_read_dev_super(struct block_device *bdev); struct buffer_head *btrfs_read_dev_super(struct block_device *bdev);
int btrfs_read_dev_one_super(struct block_device *bdev, int copy_num, int btrfs_read_dev_one_super(struct block_device *bdev, int copy_num,
......
...@@ -187,7 +187,7 @@ static struct ratelimit_state printk_limits[] = { ...@@ -187,7 +187,7 @@ static struct ratelimit_state printk_limits[] = {
RATELIMIT_STATE_INIT(printk_limits[7], DEFAULT_RATELIMIT_INTERVAL, 100), RATELIMIT_STATE_INIT(printk_limits[7], DEFAULT_RATELIMIT_INTERVAL, 100),
}; };
void btrfs_printk(const struct btrfs_fs_info *fs_info, const char *fmt, ...) void __cold btrfs_printk(const struct btrfs_fs_info *fs_info, const char *fmt, ...)
{ {
char lvl[PRINTK_MAX_SINGLE_HEADER_LEN + 1] = "\0"; char lvl[PRINTK_MAX_SINGLE_HEADER_LEN + 1] = "\0";
struct va_format vaf; struct va_format vaf;
......
...@@ -2052,7 +2052,7 @@ static struct btrfs_device * btrfs_find_next_active_device( ...@@ -2052,7 +2052,7 @@ static struct btrfs_device * btrfs_find_next_active_device(
* where this function called, there should be always be another device (or * where this function called, there should be always be another device (or
* this_dev) which is active. * this_dev) which is active.
*/ */
void btrfs_assign_next_active_device(struct btrfs_device *device, void __cold btrfs_assign_next_active_device(struct btrfs_device *device,
struct btrfs_device *this_dev) struct btrfs_device *this_dev)
{ {
struct btrfs_fs_info *fs_info = device->fs_info; struct btrfs_fs_info *fs_info = device->fs_info;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment