afs: Overhaul cell database management
[linux-2.6-microblaze.git] / fs / afs / super.c
index e62fb1b..3d53b78 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 ?: "");