]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - fs/afs/super.c
afs: Overhaul cell database management
[mirror_ubuntu-bionic-kernel.git] / fs / afs / super.c
index e62fb1bdadc65e75a1c0c4feadb6491c64ca415f..3d53b78b350d1fb91cc6cbac33a5e54757fbfb95 100644 (file)
@@ -200,10 +200,11 @@ static int afs_parse_options(struct afs_mount_params *params,
                token = match_token(p, afs_options_list, args);
                switch (token) {
                case afs_opt_cell:
-                       cell = afs_cell_lookup(params->net,
-                                              args[0].from,
-                                              args[0].to - args[0].from,
-                                              false);
+                       rcu_read_lock();
+                       cell = afs_lookup_cell_rcu(params->net,
+                                                  args[0].from,
+                                                  args[0].to - args[0].from);
+                       rcu_read_unlock();
                        if (IS_ERR(cell))
                                return PTR_ERR(cell);
                        afs_put_cell(params->net, params->cell);
@@ -308,7 +309,8 @@ static int afs_parse_device_name(struct afs_mount_params *params,
 
        /* lookup the cell record */
        if (cellname || !params->cell) {
-               cell = afs_cell_lookup(params->net, cellname, cellnamesz, true);
+               cell = afs_lookup_cell(params->net, cellname, cellnamesz,
+                                      NULL, false);
                if (IS_ERR(cell)) {
                        printk(KERN_ERR "kAFS: unable to lookup cell '%*.*s'\n",
                               cellnamesz, cellnamesz, cellname ?: "");