X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=uuid-tree.c;h=320eb67e1404943c73a278e83112e2d08b87b0a6;hb=c38425344e229deba47f1ac41755618d86521d01;hp=3a4c48e4ef4bc042d16b6aad8a87d89595d06071;hpb=ad280c1b3a8a88e2113dd1bcb725a36be7da5356;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/uuid-tree.c b/uuid-tree.c index 3a4c48e..320eb67 100644 --- a/uuid-tree.c +++ b/uuid-tree.c @@ -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); @@ -59,9 +60,9 @@ static int btrfs_uuid_tree_lookup_any(int fd, const u8 *uuid, u8 type, ret = ioctl(fd, BTRFS_IOC_TREE_SEARCH, &search_arg); if (ret < 0) { fprintf(stderr, - "ioctl(BTRFS_IOC_TREE_SEARCH, uuid, key %016llx, UUID_KEY, %016llx) ret=%d, error: %s\n", + "ioctl(BTRFS_IOC_TREE_SEARCH, uuid, key %016llx, UUID_KEY, %016llx) ret=%d, error: %m\n", (unsigned long long)key_objectid, - (unsigned long long)key_offset, ret, strerror(errno)); + (unsigned long long)key_offset, ret); ret = -ENOENT; goto out; } @@ -71,7 +72,7 @@ static int btrfs_uuid_tree_lookup_any(int fd, const u8 *uuid, u8 type, goto out; } search_header = (struct btrfs_ioctl_search_header *)(search_arg.buf); - item_size = search_header->len; + item_size = btrfs_search_header_len(search_header); if ((item_size & (sizeof(u64) - 1)) || item_size == 0) { printf("btrfs: uuid item with illegal size %lu!\n", (unsigned long)item_size); @@ -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;