btrfs-progs: dump-tree: simplify and fix check for empty uuid

Counting non-zero bytes is wasteful, besides that it would not recognize
uuids containing a 00 value.

Signed-off-by: David Sterba <dsterba@suse.com>
master
David Sterba 2016-11-02 10:22:10 +01:00
parent 5082ec84a8
commit a15294f0c4
1 changed files with 8 additions and 9 deletions

View File

@ -516,15 +516,14 @@ static void print_root_ref(struct extent_buffer *leaf, int slot, char *tag)
namelen, namebuf); namelen, namebuf);
} }
static int count_bytes(void *buf, int len, char b) static int empty_uuid(const u8 *uuid)
{ {
int cnt = 0;
int i; int i;
for (i = 0; i < len; i++) {
if (((char*)buf)[i] == b) for (i = 0; i < BTRFS_UUID_SIZE; i++)
cnt++; if (uuid[i])
} return 0;
return cnt; return 1;
} }
/* /*
@ -570,11 +569,11 @@ static void print_root(struct extent_buffer *leaf, int slot)
if (root_item.generation == root_item.generation_v2) { if (root_item.generation == root_item.generation_v2) {
uuid_unparse(root_item.uuid, uuid_str); uuid_unparse(root_item.uuid, uuid_str);
printf("\t\tuuid %s\n", uuid_str); printf("\t\tuuid %s\n", uuid_str);
if (count_bytes(root_item.parent_uuid, BTRFS_UUID_SIZE, 0) != BTRFS_UUID_SIZE) { if (!empty_uuid(root_item.parent_uuid)) {
uuid_unparse(root_item.parent_uuid, uuid_str); uuid_unparse(root_item.parent_uuid, uuid_str);
printf("\t\tparent_uuid %s\n", uuid_str); printf("\t\tparent_uuid %s\n", uuid_str);
} }
if (count_bytes(root_item.received_uuid, BTRFS_UUID_SIZE, 0) != BTRFS_UUID_SIZE) { if (!empty_uuid(root_item.received_uuid)) {
uuid_unparse(root_item.received_uuid, uuid_str); uuid_unparse(root_item.received_uuid, uuid_str);
printf("\t\treceived_uuid %s\n", uuid_str); printf("\t\treceived_uuid %s\n", uuid_str);
} }