aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfsd
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfsd')
-rw-r--r--fs/nfsd/nfs4state.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index fb9b4eb4302d..2a59d176e69a 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -674,23 +674,13 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_setclientid *setclid)
674 * or different ip_address 674 * or different ip_address
675 */ 675 */
676 status = nfserr_clid_inuse; 676 status = nfserr_clid_inuse;
677 if (!cmp_creds(&clp->cl_cred,&rqstp->rq_cred)) { 677 if (!cmp_creds(&clp->cl_cred,&rqstp->rq_cred)
678 || clp->cl_addr != ip_addr) {
678 printk("NFSD: setclientid: string in use by client" 679 printk("NFSD: setclientid: string in use by client"
679 "(clientid %08x/%08x)\n", 680 "(clientid %08x/%08x)\n",
680 clp->cl_clientid.cl_boot, clp->cl_clientid.cl_id); 681 clp->cl_clientid.cl_boot, clp->cl_clientid.cl_id);
681 goto out; 682 goto out;
682 } 683 }
683 if (clp->cl_addr != ip_addr) {
684 printk("NFSD: setclientid: string in use by client"
685 "(clientid %08x/%08x)\n",
686 clp->cl_clientid.cl_boot, clp->cl_clientid.cl_id);
687 goto out;
688 }
689
690 /*
691 * cl_name match from a previous SETCLIENTID operation
692 * XXX check for additional matches?
693 */
694 conf = clp; 684 conf = clp;
695 break; 685 break;
696 } 686 }