aboutsummaryrefslogtreecommitdiffstats
path: root/fs/lockd/svc.c
diff options
context:
space:
mode:
authorStanislav Kinsbursky <skinsbursky@parallels.com>2012-04-25 10:22:40 -0400
committerJ. Bruce Fields <bfields@redhat.com>2012-05-31 20:29:41 -0400
commit4db77695bf5738bdafa83d1b58b64cbecc6f55e7 (patch)
tree251c5071cb060e29a22cad9b0e2fbd53f719602c /fs/lockd/svc.c
parent91c427ac3a61ccabae0fdef53563edf40394b6c9 (diff)
LockD: pass service to per-net up and down functions
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/lockd/svc.c')
-rw-r--r--fs/lockd/svc.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
index 3250f280a171..58ddc38cfccd 100644
--- a/fs/lockd/svc.c
+++ b/fs/lockd/svc.c
@@ -251,10 +251,9 @@ out_err:
251 return err; 251 return err;
252} 252}
253 253
254static int lockd_up_net(struct net *net) 254static int lockd_up_net(struct svc_serv *serv, struct net *net)
255{ 255{
256 struct lockd_net *ln = net_generic(net, lockd_net_id); 256 struct lockd_net *ln = net_generic(net, lockd_net_id);
257 struct svc_serv *serv = nlmsvc_rqst->rq_server;
258 int error; 257 int error;
259 258
260 if (ln->nlmsvc_users++) 259 if (ln->nlmsvc_users++)
@@ -276,10 +275,9 @@ err_rpcb:
276 return error; 275 return error;
277} 276}
278 277
279static void lockd_down_net(struct net *net) 278static void lockd_down_net(struct svc_serv *serv, struct net *net)
280{ 279{
281 struct lockd_net *ln = net_generic(net, lockd_net_id); 280 struct lockd_net *ln = net_generic(net, lockd_net_id);
282 struct svc_serv *serv = nlmsvc_rqst->rq_server;
283 281
284 if (ln->nlmsvc_users) { 282 if (ln->nlmsvc_users) {
285 if (--ln->nlmsvc_users == 0) { 283 if (--ln->nlmsvc_users == 0) {
@@ -307,7 +305,7 @@ int lockd_up(struct net *net)
307 * Check whether we're already up and running. 305 * Check whether we're already up and running.
308 */ 306 */
309 if (nlmsvc_rqst) { 307 if (nlmsvc_rqst) {
310 error = lockd_up_net(net); 308 error = lockd_up_net(nlmsvc_rqst->rq_server, net);
311 goto out; 309 goto out;
312 } 310 }
313 311
@@ -378,7 +376,7 @@ out:
378 return error; 376 return error;
379 377
380err_start: 378err_start:
381 lockd_down_net(net); 379 lockd_down_net(serv, net);
382 goto destroy_and_out; 380 goto destroy_and_out;
383} 381}
384EXPORT_SYMBOL_GPL(lockd_up); 382EXPORT_SYMBOL_GPL(lockd_up);
@@ -390,7 +388,7 @@ void
390lockd_down(struct net *net) 388lockd_down(struct net *net)
391{ 389{
392 mutex_lock(&nlmsvc_mutex); 390 mutex_lock(&nlmsvc_mutex);
393 lockd_down_net(net); 391 lockd_down_net(nlmsvc_rqst->rq_server, net);
394 if (nlmsvc_users) { 392 if (nlmsvc_users) {
395 if (--nlmsvc_users) 393 if (--nlmsvc_users)
396 goto out; 394 goto out;