btrfs-progs: latest_devid is not always the probed devid
commit9567dc89521ba83f3dba561c82a3f6b9aff30a02
authorAnand Jain <Anand.Jain@oracle.com>
Mon, 24 Feb 2014 11:43:38 +0000 (24 19:43 +0800)
committerChris Mason <clm@fb.com>
Fri, 21 Mar 2014 13:23:27 +0000 (21 06:23 -0700)
treed04e7e723c4e7e636bfb7aeeedd333432d1ada39
parent50275bacab0f62b91453fbfa29e75c2bb77bf9b6
btrfs-progs: latest_devid is not always the probed devid

btrfs-progs picks the latest_dev based on first probed
greatest trans-id. However below test case proofs that
approach is wrong.

$ mkfs.btrfs -d raid1 -m raid1 /dev/sde /dev/sdf
$ modprobe -r btrfs && modprobe btrfs
$ mount -o degraded /dev/sde /btrfs
$ touch /btrfs/testfile && btrfs fi sync /btrfs

The above steps will make /dev/sdf not part of the btrfs.

and as below when you use /dev/sdf the btrfs dev stat
and dev scrub picks up wrong disk

$ btrfs dev stat /dev/sdf
[/dev/sde].write_io_errs   0
[/dev/sde].read_io_errs    0
[/dev/sde].flush_io_errs   0
[/dev/sde].corruption_errs 0
[/dev/sde].generation_errs 0

$ btrfs scrub start -B /dev/sdf
scrub done for 2e99c881-6abd-4f8a-8290-e2f8d0acc575
 scrub started at Mon Feb 24 14:45:06 2014 and finished after 0 seconds
 total bytes scrubbed: 256.00KiB with 0 errors

Signed-off-by: Anand Jain <Anand.Jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
utils.c