mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
Btrfs: Fix allocation profile init
Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
6bc34676c0
commit
d18a2c4475
@ -506,12 +506,13 @@ struct btrfs_fs_info {
|
||||
u64 delalloc_bytes;
|
||||
u64 last_alloc;
|
||||
u64 last_data_alloc;
|
||||
int avail_data_alloc_bits;
|
||||
int avail_metadata_alloc_bits;
|
||||
int avail_system_alloc_bits;
|
||||
int data_alloc_profile;
|
||||
int metadata_alloc_profile;
|
||||
int system_alloc_profile;
|
||||
|
||||
u64 avail_data_alloc_bits;
|
||||
u64 avail_metadata_alloc_bits;
|
||||
u64 avail_system_alloc_bits;
|
||||
u64 data_alloc_profile;
|
||||
u64 metadata_alloc_profile;
|
||||
u64 system_alloc_profile;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -912,13 +912,10 @@ struct btrfs_root *open_ctree(struct super_block *sb,
|
||||
btrfs_read_block_groups(extent_root);
|
||||
|
||||
fs_info->generation = btrfs_super_generation(disk_super) + 1;
|
||||
if (btrfs_super_num_devices(disk_super) > 0) {
|
||||
fs_info->data_alloc_profile = BTRFS_BLOCK_GROUP_RAID0 |
|
||||
BTRFS_BLOCK_GROUP_RAID1;
|
||||
fs_info->metadata_alloc_profile = BTRFS_BLOCK_GROUP_RAID1 |
|
||||
BTRFS_BLOCK_GROUP_DUP;
|
||||
fs_info->system_alloc_profile = fs_info->metadata_alloc_profile;
|
||||
}
|
||||
fs_info->data_alloc_profile = (u64)-1;
|
||||
fs_info->metadata_alloc_profile = (u64)-1;
|
||||
fs_info->system_alloc_profile = fs_info->metadata_alloc_profile;
|
||||
|
||||
mutex_unlock(&fs_info->fs_mutex);
|
||||
return tree_root;
|
||||
|
||||
|
@ -1100,7 +1100,6 @@ printk("space info full %Lu\n", flags);
|
||||
start, num_bytes);
|
||||
BUG_ON(ret);
|
||||
|
||||
set_avail_alloc_bits(extent_root->fs_info, flags);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2813,13 +2812,7 @@ int btrfs_make_block_group(struct btrfs_trans_handle *trans,
|
||||
&cache->space_info);
|
||||
BUG_ON(ret);
|
||||
|
||||
if (type & BTRFS_BLOCK_GROUP_DATA) {
|
||||
bit = BLOCK_GROUP_DATA;
|
||||
} else if (type & BTRFS_BLOCK_GROUP_SYSTEM) {
|
||||
bit = BLOCK_GROUP_SYSTEM;
|
||||
} else if (type & BTRFS_BLOCK_GROUP_METADATA) {
|
||||
bit = BLOCK_GROUP_METADATA;
|
||||
}
|
||||
bit = block_group_state_bits(type);
|
||||
set_extent_bits(block_group_cache, chunk_objectid,
|
||||
chunk_objectid + size - 1,
|
||||
bit | EXTENT_LOCKED, GFP_NOFS);
|
||||
@ -2833,5 +2826,6 @@ int btrfs_make_block_group(struct btrfs_trans_handle *trans,
|
||||
finish_current_insert(trans, extent_root);
|
||||
ret = del_pending_extents(trans, extent_root);
|
||||
BUG_ON(ret);
|
||||
set_avail_alloc_bits(extent_root->fs_info, type);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user