Commit 3d976388 authored by David Sterba's avatar David Sterba

btrfs: remove embedded block_group_cache::item

The members ::used and ::flags are now in the block group cache
structure, the last one is chunk_objectid, but that's set to a fixed
value and otherwise unused. The item is constructed from a local
variable before write, so we can remove the embedded one from block
group.
Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: default avatarNikolay Borisov <nborisov@suse.com>
Reviewed-by: default avatarQu Wenruo <wqu@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent f93c63e5
...@@ -1752,8 +1752,7 @@ int btrfs_read_block_groups(struct btrfs_fs_info *info) ...@@ -1752,8 +1752,7 @@ int btrfs_read_block_groups(struct btrfs_fs_info *info)
read_extent_buffer(leaf, &bgi, read_extent_buffer(leaf, &bgi,
btrfs_item_ptr_offset(leaf, path->slots[0]), btrfs_item_ptr_offset(leaf, path->slots[0]),
sizeof(bgi)); sizeof(bgi));
/* Duplicate as the item is still partially used */ /* cache::chunk_objectid is unused */
memcpy(&cache->item, &bgi, sizeof(bgi));
cache->used = btrfs_block_group_used(&bgi); cache->used = btrfs_block_group_used(&bgi);
cache->flags = btrfs_block_group_flags(&bgi); cache->flags = btrfs_block_group_flags(&bgi);
if (!mixed && if (!mixed &&
...@@ -1879,12 +1878,9 @@ void btrfs_create_pending_block_groups(struct btrfs_trans_handle *trans) ...@@ -1879,12 +1878,9 @@ void btrfs_create_pending_block_groups(struct btrfs_trans_handle *trans)
goto next; goto next;
spin_lock(&block_group->lock); spin_lock(&block_group->lock);
/*
* Copy partially filled item from the cache and ovewrite used
* that has the correct value
*/
memcpy(&item, &block_group->item, sizeof(item));
btrfs_set_block_group_used(&item, block_group->used); btrfs_set_block_group_used(&item, block_group->used);
btrfs_set_block_group_chunk_objectid(&item,
BTRFS_FIRST_CHUNK_TREE_OBJECTID);
btrfs_set_block_group_flags(&item, block_group->flags); btrfs_set_block_group_flags(&item, block_group->flags);
memcpy(&key, &block_group->key, sizeof(key)); memcpy(&key, &block_group->key, sizeof(key));
spin_unlock(&block_group->lock); spin_unlock(&block_group->lock);
...@@ -1919,8 +1915,6 @@ int btrfs_make_block_group(struct btrfs_trans_handle *trans, u64 bytes_used, ...@@ -1919,8 +1915,6 @@ int btrfs_make_block_group(struct btrfs_trans_handle *trans, u64 bytes_used,
return -ENOMEM; return -ENOMEM;
cache->used = bytes_used; cache->used = bytes_used;
btrfs_set_block_group_chunk_objectid(&cache->item,
BTRFS_FIRST_CHUNK_TREE_OBJECTID);
cache->flags = type; cache->flags = type;
cache->last_byte_to_unpin = (u64)-1; cache->last_byte_to_unpin = (u64)-1;
cache->cached = BTRFS_CACHE_FINISHED; cache->cached = BTRFS_CACHE_FINISHED;
...@@ -2136,9 +2130,9 @@ static int write_one_cache_group(struct btrfs_trans_handle *trans, ...@@ -2136,9 +2130,9 @@ static int write_one_cache_group(struct btrfs_trans_handle *trans,
leaf = path->nodes[0]; leaf = path->nodes[0];
bi = btrfs_item_ptr_offset(leaf, path->slots[0]); bi = btrfs_item_ptr_offset(leaf, path->slots[0]);
/* Partial copy of item, update the rest from memory */
memcpy(&bgi, &cache->item, sizeof(bgi));
btrfs_set_block_group_used(&bgi, cache->used); btrfs_set_block_group_used(&bgi, cache->used);
btrfs_set_block_group_chunk_objectid(&bgi,
BTRFS_FIRST_CHUNK_TREE_OBJECTID);
btrfs_set_block_group_flags(&bgi, cache->flags); btrfs_set_block_group_flags(&bgi, cache->flags);
write_extent_buffer(leaf, &bgi, bi, sizeof(bgi)); write_extent_buffer(leaf, &bgi, bi, sizeof(bgi));
btrfs_mark_buffer_dirty(leaf); btrfs_mark_buffer_dirty(leaf);
......
...@@ -44,7 +44,6 @@ struct btrfs_caching_control { ...@@ -44,7 +44,6 @@ struct btrfs_caching_control {
struct btrfs_block_group_cache { struct btrfs_block_group_cache {
struct btrfs_key key; struct btrfs_key key;
struct btrfs_block_group_item item;
struct btrfs_fs_info *fs_info; struct btrfs_fs_info *fs_info;
struct inode *inode; struct inode *inode;
spinlock_t lock; spinlock_t lock;
......
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