aboutsummaryrefslogtreecommitdiffstats
path: root/fs/lockd/svcproc.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/lockd/svcproc.c')
-rw-r--r--fs/lockd/svcproc.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/fs/lockd/svcproc.c b/fs/lockd/svcproc.c
index dbc4ea2638c9..452eb5e5ea44 100644
--- a/fs/lockd/svcproc.c
+++ b/fs/lockd/svcproc.c
@@ -449,9 +449,6 @@ nlmsvc_proc_sm_notify(struct svc_rqst *rqstp, struct nlm_reboot *argp,
449 void *resp) 449 void *resp)
450{ 450{
451 struct sockaddr_in saddr = rqstp->rq_addr; 451 struct sockaddr_in saddr = rqstp->rq_addr;
452 int vers = argp->vers;
453 int prot = argp->proto >> 1;
454 struct nlm_host *host;
455 452
456 dprintk("lockd: SM_NOTIFY called\n"); 453 dprintk("lockd: SM_NOTIFY called\n");
457 if (saddr.sin_addr.s_addr != htonl(INADDR_LOOPBACK) 454 if (saddr.sin_addr.s_addr != htonl(INADDR_LOOPBACK)
@@ -466,19 +463,9 @@ nlmsvc_proc_sm_notify(struct svc_rqst *rqstp, struct nlm_reboot *argp,
466 /* Obtain the host pointer for this NFS server and try to 463 /* Obtain the host pointer for this NFS server and try to
467 * reclaim all locks we hold on this server. 464 * reclaim all locks we hold on this server.
468 */ 465 */
466 memset(&saddr, 0, sizeof(saddr));
469 saddr.sin_addr.s_addr = argp->addr; 467 saddr.sin_addr.s_addr = argp->addr;
470 if ((argp->proto & 1)==0) { 468 nlm_host_rebooted(&saddr, argp);
471 if ((host = nlmclnt_lookup_host(&saddr, prot, vers)) != NULL) {
472 nlmclnt_recovery(host, argp->state);
473 nlm_release_host(host);
474 }
475 } else {
476 /* If we run on an NFS server, delete all locks held by the client */
477 if ((host = nlm_lookup_host(1, &saddr, prot, vers)) != NULL) {
478 nlmsvc_free_host_resources(host);
479 nlm_release_host(host);
480 }
481 }
482 469
483 return rpc_success; 470 return rpc_success;
484} 471}