diff options
-rw-r--r-- | fs/lockd/clntproc.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c index 89ba0df14c22..50dbb67ae0c4 100644 --- a/fs/lockd/clntproc.c +++ b/fs/lockd/clntproc.c | |||
@@ -151,11 +151,13 @@ static void nlmclnt_release_lockargs(struct nlm_rqst *req) | |||
151 | int | 151 | int |
152 | nlmclnt_proc(struct inode *inode, int cmd, struct file_lock *fl) | 152 | nlmclnt_proc(struct inode *inode, int cmd, struct file_lock *fl) |
153 | { | 153 | { |
154 | struct rpc_clnt *client = NFS_CLIENT(inode); | ||
155 | struct sockaddr_in addr; | ||
154 | struct nlm_host *host; | 156 | struct nlm_host *host; |
155 | struct nlm_rqst *call; | 157 | struct nlm_rqst *call; |
156 | sigset_t oldset; | 158 | sigset_t oldset; |
157 | unsigned long flags; | 159 | unsigned long flags; |
158 | int status, proto, vers; | 160 | int status, vers; |
159 | 161 | ||
160 | vers = (NFS_PROTO(inode)->version == 3) ? 4 : 1; | 162 | vers = (NFS_PROTO(inode)->version == 3) ? 4 : 1; |
161 | if (NFS_PROTO(inode)->version > 3) { | 163 | if (NFS_PROTO(inode)->version > 3) { |
@@ -163,10 +165,8 @@ nlmclnt_proc(struct inode *inode, int cmd, struct file_lock *fl) | |||
163 | return -ENOLCK; | 165 | return -ENOLCK; |
164 | } | 166 | } |
165 | 167 | ||
166 | /* Retrieve transport protocol from NFS client */ | 168 | rpc_peeraddr(client, (struct sockaddr *) &addr, sizeof(addr)); |
167 | proto = NFS_CLIENT(inode)->cl_xprt->prot; | 169 | host = nlmclnt_lookup_host(&addr, client->cl_xprt->prot, vers); |
168 | |||
169 | host = nlmclnt_lookup_host(NFS_ADDR(inode), proto, vers); | ||
170 | if (host == NULL) | 170 | if (host == NULL) |
171 | return -ENOLCK; | 171 | return -ENOLCK; |
172 | 172 | ||