!btrfs_test_opt(fs_info, DEGRADED)) {
                        free_extent_map(em);
                        btrfs_report_missing_device(fs_info, devid, uuid);
-                       return -EIO;
+                       return -ENOENT;
                }
                if (!map->stripes[i].dev) {
                        map->stripes[i].dev =
        if (!device) {
                if (!btrfs_test_opt(fs_info, DEGRADED)) {
                        btrfs_report_missing_device(fs_info, devid, dev_uuid);
-                       return -EIO;
+                       return -ENOENT;
                }
 
                device = add_missing_dev(fs_devices, devid, dev_uuid);
                if (!device->bdev) {
                        btrfs_report_missing_device(fs_info, devid, dev_uuid);
                        if (!btrfs_test_opt(fs_info, DEGRADED))
-                               return -EIO;
+                               return -ENOENT;
                }
 
                if(!device->bdev && !device->missing) {