btrfs-progs: Add dev uuid output for print_dev_item().
authorQu Wenruo <quwenruo@cn.fujitsu.com>
Fri, 30 May 2014 02:19:04 +0000 (10:19 +0800)
committerDavid Sterba <dsterba@suse.cz>
Fri, 22 Aug 2014 12:39:32 +0000 (14:39 +0200)
The original print_dev_item() only prints device id,total bytes and
bytes used.

When it comes to debug duplicated device id, dev uuid
is needed to distinguish different devices since device id is not
reliable.
(Although the current dev replace implement will reuse the dev uuid,
so not really helpful)

This patch adds dev uuid output for print_dev_item().

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
print-tree.c

index d46ab422714d2658d51e063707027fd63c336f0f..506cd177dc96b051f39a31c886429df0ad0d8098 100644 (file)
@@ -179,11 +179,20 @@ void print_chunk(struct extent_buffer *eb, struct btrfs_chunk *chunk)
 static void print_dev_item(struct extent_buffer *eb,
                           struct btrfs_dev_item *dev_item)
 {
+       char disk_uuid_c[BTRFS_UUID_UNPARSED_SIZE];
+       u8 disk_uuid[BTRFS_UUID_SIZE];
+
+       read_extent_buffer(eb, disk_uuid,
+                          (unsigned long)btrfs_device_uuid(dev_item),
+                          BTRFS_UUID_SIZE);
+       uuid_unparse(disk_uuid, disk_uuid_c);
        printf("\t\tdev item devid %llu "
-              "total_bytes %llu bytes used %Lu\n",
+              "total_bytes %llu bytes used %Lu\n"
+              "\t\tdev uuid %s\n",
               (unsigned long long)btrfs_device_id(eb, dev_item),
               (unsigned long long)btrfs_device_total_bytes(eb, dev_item),
-              (unsigned long long)btrfs_device_bytes_used(eb, dev_item));
+              (unsigned long long)btrfs_device_bytes_used(eb, dev_item),
+              disk_uuid_c);
 }
 
 static void print_uuids(struct extent_buffer *eb)