@@ -843,6 +843,8 @@ static noinline int device_list_add(const char *path,
if (!fs_devices->opened)
device->generation = found_transid;
+ fs_devices->total_devices = btrfs_super_num_devices(disk_super);
+
*fs_devices_ret = fs_devices;
return 0;
@@ -1184,7 +1186,6 @@ int btrfs_scan_one_device(const char *path, fmode_t flags, void *holder,
struct page *page;
int ret;
u64 devid;
- u64 total_devices;
u64 bytenr;
/*
@@ -1206,12 +1207,9 @@ int btrfs_scan_one_device(const char *path, fmode_t flags, void *holder,
}
devid = btrfs_stack_device_id(&disk_super->dev_item);
- total_devices = btrfs_super_num_devices(disk_super);
mutex_lock(&uuid_mutex);
ret = device_list_add(path, disk_super, devid, fs_devices_ret);
- if (!ret && fs_devices_ret)
- (*fs_devices_ret)->total_devices = total_devices;
mutex_unlock(&uuid_mutex);
btrfs_release_disk_super(page);