btrfs-progs: fix in-place byte swapping
Storing fixed-endian values in native cpu types defeats the purpose of using sparse endian types to find endian conversion bugs. Signed-off-by: Zach Brown <zab@redhat.com> Signed-off-by: David Sterba <dsterba@suse.cz> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
This commit is contained in:
parent
47c072c2d8
commit
73043664dc
|
@ -688,11 +688,11 @@ static void print_uuid_item(struct extent_buffer *l, unsigned long offset,
|
|||
return;
|
||||
}
|
||||
while (item_size) {
|
||||
u64 subvol_id;
|
||||
__le64 subvol_id;
|
||||
|
||||
read_extent_buffer(l, &subvol_id, offset, sizeof(u64));
|
||||
subvol_id = le64_to_cpu(subvol_id);
|
||||
printf("\t\tsubvol_id %llu\n", (unsigned long long)subvol_id);
|
||||
printf("\t\tsubvol_id %llu\n",
|
||||
(unsigned long long)le64_to_cpu(subvol_id));
|
||||
item_size -= sizeof(u64);
|
||||
offset += sizeof(u64);
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ static int btrfs_uuid_tree_lookup_any(int fd, const u8 *uuid, u8 type,
|
|||
struct btrfs_ioctl_search_args search_arg;
|
||||
struct btrfs_ioctl_search_header *search_header;
|
||||
u32 item_size;
|
||||
__le64 lesubid;
|
||||
|
||||
btrfs_uuid_to_key(uuid, &key_objectid, &key_offset);
|
||||
|
||||
|
@ -82,8 +83,8 @@ static int btrfs_uuid_tree_lookup_any(int fd, const u8 *uuid, u8 type,
|
|||
}
|
||||
|
||||
/* return first stored id */
|
||||
memcpy(subid, search_header + 1, sizeof(*subid));
|
||||
*subid = le64_to_cpu(*subid);
|
||||
memcpy(&lesubid, search_header + 1, sizeof(lesubid));
|
||||
*subid = le64_to_cpu(lesubid);
|
||||
|
||||
out:
|
||||
return ret;
|
||||
|
|
Loading…
Reference in New Issue