Commit 8bfc9b2c authored by David Sterba's avatar David Sterba

btrfs: use enum for btrfs_block_rsv::type

The number of block group reserve types BTRFS_BLOCK_RSV_* is small and
fits to u8 and there's enough left in case we want to add more.
For type safety use the enum but make it 8 bits in the structure to save
space.

The structure size is now 48 on release build, making a slight
improvement in structures where it's embedded, like btrfs_fs_info or
btrfs_inode.
Reviewed-by: default avatarAnand Jain <anand.jain@oracle.com>
Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 710d5921
...@@ -171,7 +171,7 @@ int btrfs_block_rsv_migrate(struct btrfs_block_rsv *src, ...@@ -171,7 +171,7 @@ int btrfs_block_rsv_migrate(struct btrfs_block_rsv *src,
return 0; return 0;
} }
void btrfs_init_block_rsv(struct btrfs_block_rsv *rsv, unsigned short type) void btrfs_init_block_rsv(struct btrfs_block_rsv *rsv, enum btrfs_rsv_type type)
{ {
memset(rsv, 0, sizeof(*rsv)); memset(rsv, 0, sizeof(*rsv));
spin_lock_init(&rsv->lock); spin_lock_init(&rsv->lock);
...@@ -180,7 +180,7 @@ void btrfs_init_block_rsv(struct btrfs_block_rsv *rsv, unsigned short type) ...@@ -180,7 +180,7 @@ void btrfs_init_block_rsv(struct btrfs_block_rsv *rsv, unsigned short type)
void btrfs_init_metadata_block_rsv(struct btrfs_fs_info *fs_info, void btrfs_init_metadata_block_rsv(struct btrfs_fs_info *fs_info,
struct btrfs_block_rsv *rsv, struct btrfs_block_rsv *rsv,
unsigned short type) enum btrfs_rsv_type type)
{ {
btrfs_init_block_rsv(rsv, type); btrfs_init_block_rsv(rsv, type);
rsv->space_info = btrfs_find_space_info(fs_info, rsv->space_info = btrfs_find_space_info(fs_info,
...@@ -188,7 +188,7 @@ void btrfs_init_metadata_block_rsv(struct btrfs_fs_info *fs_info, ...@@ -188,7 +188,7 @@ void btrfs_init_metadata_block_rsv(struct btrfs_fs_info *fs_info,
} }
struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_fs_info *fs_info, struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_fs_info *fs_info,
unsigned short type) enum btrfs_rsv_type type)
{ {
struct btrfs_block_rsv *block_rsv; struct btrfs_block_rsv *block_rsv;
......
...@@ -9,7 +9,7 @@ enum btrfs_reserve_flush_enum; ...@@ -9,7 +9,7 @@ enum btrfs_reserve_flush_enum;
/* /*
* Types of block reserves * Types of block reserves
*/ */
enum { enum btrfs_rsv_type {
BTRFS_BLOCK_RSV_GLOBAL, BTRFS_BLOCK_RSV_GLOBAL,
BTRFS_BLOCK_RSV_DELALLOC, BTRFS_BLOCK_RSV_DELALLOC,
BTRFS_BLOCK_RSV_TRANS, BTRFS_BLOCK_RSV_TRANS,
...@@ -27,7 +27,8 @@ struct btrfs_block_rsv { ...@@ -27,7 +27,8 @@ struct btrfs_block_rsv {
spinlock_t lock; spinlock_t lock;
bool full; bool full;
bool failfast; bool failfast;
unsigned short type; /* Block reserve type, one of BTRFS_BLOCK_RSV_* */
enum btrfs_rsv_type type:8;
/* /*
* Qgroup equivalent for @size @reserved * Qgroup equivalent for @size @reserved
...@@ -49,13 +50,13 @@ struct btrfs_block_rsv { ...@@ -49,13 +50,13 @@ struct btrfs_block_rsv {
u64 qgroup_rsv_reserved; u64 qgroup_rsv_reserved;
}; };
void btrfs_init_block_rsv(struct btrfs_block_rsv *rsv, unsigned short type); void btrfs_init_block_rsv(struct btrfs_block_rsv *rsv, enum btrfs_rsv_type type);
void btrfs_init_root_block_rsv(struct btrfs_root *root); void btrfs_init_root_block_rsv(struct btrfs_root *root);
struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_fs_info *fs_info, struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_fs_info *fs_info,
unsigned short type); enum btrfs_rsv_type type);
void btrfs_init_metadata_block_rsv(struct btrfs_fs_info *fs_info, void btrfs_init_metadata_block_rsv(struct btrfs_fs_info *fs_info,
struct btrfs_block_rsv *rsv, struct btrfs_block_rsv *rsv,
unsigned short type); enum btrfs_rsv_type type);
void btrfs_free_block_rsv(struct btrfs_fs_info *fs_info, void btrfs_free_block_rsv(struct btrfs_fs_info *fs_info,
struct btrfs_block_rsv *rsv); struct btrfs_block_rsv *rsv);
int btrfs_block_rsv_add(struct btrfs_fs_info *fs_info, int btrfs_block_rsv_add(struct btrfs_fs_info *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