btrfs: fix potential oops in device_list_add
[sfrench/cifs-2.6.git] / fs / btrfs / volumes.c
index 3e4f8f88353e163454f0ee953a14f92679cfe7bc..15561926ab32cbc8c0ba8a4006fcb8a45e87e6d5 100644 (file)
@@ -957,11 +957,11 @@ static noinline struct btrfs_device *device_list_add(const char *path,
                else
                        fs_devices = alloc_fs_devices(disk_super->fsid, NULL);
 
-               fs_devices->fsid_change = fsid_change_in_progress;
-
                if (IS_ERR(fs_devices))
                        return ERR_CAST(fs_devices);
 
+               fs_devices->fsid_change = fsid_change_in_progress;
+
                mutex_lock(&fs_devices->device_list_mutex);
                list_add(&fs_devices->fs_list, &fs_uuids);