btrfs-progs: Use helper function to access btrfs_super_block->sys_chunk_array_size
btrfs_super_block->sys_chunk_array_size is stored as le32 data on disk. However insert_temp_chunk_item() writes sys_chunk_array_size in host cpu order. This commit fixes this by using super block access helper functions to read and write btrfs_super_block->sys_chunk_array_size field. Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
fd60bbfcba
commit
4981c8d234
8
utils.c
8
utils.c
|
@ -560,14 +560,18 @@ static int insert_temp_chunk_item(int fd, struct extent_buffer *buf,
|
|||
*/
|
||||
if (type & BTRFS_BLOCK_GROUP_SYSTEM) {
|
||||
char *cur;
|
||||
u32 array_size;
|
||||
|
||||
cur = (char *)sb->sys_chunk_array + sb->sys_chunk_array_size;
|
||||
cur = (char *)sb->sys_chunk_array
|
||||
+ btrfs_super_sys_array_size(sb);
|
||||
memcpy(cur, &disk_key, sizeof(disk_key));
|
||||
cur += sizeof(disk_key);
|
||||
read_extent_buffer(buf, cur, (unsigned long int)chunk,
|
||||
btrfs_chunk_item_size(1));
|
||||
sb->sys_chunk_array_size += btrfs_chunk_item_size(1) +
|
||||
array_size = btrfs_super_sys_array_size(sb);
|
||||
array_size += btrfs_chunk_item_size(1) +
|
||||
sizeof(disk_key);
|
||||
btrfs_set_super_sys_array_size(sb, array_size);
|
||||
|
||||
ret = write_temp_super(fd, sb, cfg->super_bytenr);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue