* only when we need to allocate a new super block.
  */
 static int btrfs_parse_early_options(const char *options, fmode_t flags,
-               void *holder, struct btrfs_fs_devices **fs_devices)
+                                    void *holder)
 {
        substring_t args[MAX_OPT_ARGS];
        char *device_name, *opts, *orig, *p;
+       struct btrfs_fs_devices *fs_devices = NULL;
        int error = 0;
 
        lockdep_assert_held(&uuid_mutex);
                                goto out;
                        }
                        error = btrfs_scan_one_device(device_name,
-                                       flags, holder, fs_devices);
+                                       flags, holder, &fs_devices);
                        kfree(device_name);
                        if (error)
                                goto out;
        }
 
        mutex_lock(&uuid_mutex);
-       error = btrfs_parse_early_options(data, mode, fs_type, &fs_devices);
+       error = btrfs_parse_early_options(data, mode, fs_type);
        if (error) {
                mutex_unlock(&uuid_mutex);
                goto error_fs_info;