Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d18a2c44 authored by Chris Mason's avatar Chris Mason
Browse files

Btrfs: Fix allocation profile init

parent 6bc34676
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -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;
};

/*
+4 −7
Original line number Diff line number Diff line
@@ -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->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;

+2 −8
Original line number Diff line number Diff line
@@ -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;
}