path: root/cmds-device.c
diff options
authorYauhen Kharuzhy <>2016-03-10 16:04:35 -0800
committerDavid Sterba <>2016-03-14 13:42:47 +0100
commit3ee935e4dd23a97de31a07e36b32871730801e05 (patch)
treefd53c94b23563a1472fa15cef1f1b1eba2cc8568 /cmds-device.c
parent83ad1dcbb09d68e11a7338b066571080e9264755 (diff)
btrfs-progs: Dont' stop scanning of devices at first failed device
When 'btrfs device scan' command is invoked, it scans all devices, check them for btrfs superblock and add devices with btrfs to a list. Next, each device from the list is passed to kernel where it is handled in the btrfs_scan_one_device() function. This function can, for example, return -EBUSY when device contains superblock matched to existing and mounted filesystem (if this device was pulled out from RAID and connected again after some time). btrfs tool stops device scan if any device has been failed to add, so other existing devices with (possibly) valid FS will never be reached. Fix this by remove stopping at any failure in the btrfs_register_all_devices(), just return error count. btrfs_scan_one_device() reports any kind of error already. Signed-off-by: Yauhen Kharuzhy <> [ initialize err to 0 ] Signed-off-by: David Sterba <>
Diffstat (limited to 'cmds-device.c')
1 files changed, 1 insertions, 1 deletions
diff --git a/cmds-device.c b/cmds-device.c
index fff05e4c..a8f10f6d 100644
--- a/cmds-device.c
+++ b/cmds-device.c
@@ -254,7 +254,7 @@ static int cmd_device_scan(int argc, char **argv)
ret = btrfs_scan_lblkid();
error_on(ret, "error %d while scanning", ret);
ret = btrfs_register_all_devices();
- error_on(ret, "error %d while registering devices", ret);
+ error_on(ret, "there are %d errors while registering devices", ret);
goto out;