Btrfs-progs: make sure to save mirror_num only if it is set
authorJosef Bacik <jbacik@fb.com>
Thu, 27 Feb 2014 15:25:49 +0000 (10:25 -0500)
committerChris Mason <clm@fb.com>
Fri, 21 Mar 2014 13:23:31 +0000 (06:23 -0700)
If we are cycling through all of the mirrors trying to find the best one we need
to make sure we set best_mirror to an actual mirror number and not 0.  Otherwise
we could end up reading a mirror that wasn't the best and make everybody sad.
Thanks,

Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
disk-io.c

index e840177..0bd1bb0 100644 (file)
--- a/disk-io.c
+++ b/disk-io.c
@@ -297,7 +297,7 @@ struct extent_buffer *read_tree_block(struct btrfs_root *root, u64 bytenr,
                        ignore = 1;
                        continue;
                }
-               if (btrfs_header_generation(eb) > best_transid) {
+               if (btrfs_header_generation(eb) > best_transid && mirror_num) {
                        best_transid = btrfs_header_generation(eb);
                        good_mirror = mirror_num;
                }