Adjust the signature and callers of nlmclnt_grant() to pass a "struct sockaddr *" instead of a "struct sockaddr_in *" in order to support IPv6 addresses.
Unified · Split
| @@ -141,7 +141,7 @@ int nlmclnt_block(struct nlm_wait *block, struct nlm_rqst *req, long timeout) · 140 unmodified lines | ||
| 141 | 141 | /* |
| 142 | 142 | * The server lockd has called us back to tell us the lock was granted |
| 143 | 143 | */ |
| 144 | −__be32 nlmclnt_grant(const struct sockaddr_in *addr, const struct nlm_lock *lock) | |
| 144 | +__be32 nlmclnt_grant(const struct sockaddr *addr, const struct nlm_lock *lock) | |
| 145 | 145 | { |
| 146 | 146 | const struct file_lock *fl = &lock->fl; |
| 147 | 147 | const struct nfs_fh *fh = &lock->fh; |
| @@ -165,8 +165,7 @@ __be32 nlmclnt_grant(const struct sockaddr_in *addr, const struct nlm_lock *lock · 17 unmodified lines | ||
| 165 | 165 | */ |
| 166 | 166 | if (fl_blocked->fl_u.nfs_fl.owner->pid != lock->svid) |
| 167 | 167 | continue; |
| 168 | − if (!nlm_cmp_addr(nlm_addr(block->b_host), | |
| 169 | − (struct sockaddr *)addr)) | |
| 168 | + if (!nlm_cmp_addr(nlm_addr(block->b_host), addr)) | |
| 170 | 169 | continue; |
| 171 | 170 | if (nfs_compare_fh(NFS_FH(fl_blocked->fl_file->f_path.dentry->d_inode) ,fh) != 0) |
| 172 | 171 | continue; |
| @@ -220,7 +220,7 @@ nlm4svc_proc_granted(struct svc_rqst *rqstp, struct nlm_args *argp, · 219 unmodified lines | ||
| 220 | 220 | resp->cookie = argp->cookie; |
| 221 | 221 | |
| 222 | 222 | dprintk("lockd: GRANTED called\n"); |
| 223 | − resp->status = nlmclnt_grant(svc_addr_in(rqstp), &argp->lock); | |
| 223 | + resp->status = nlmclnt_grant(svc_addr(rqstp), &argp->lock); | |
| 224 | 224 | dprintk("lockd: GRANTED status %d\n", ntohl(resp->status)); |
| 225 | 225 | return rpc_success; |
| 226 | 226 | } |
| @@ -250,7 +250,7 @@ nlmsvc_proc_granted(struct svc_rqst *rqstp, struct nlm_args *argp, · 249 unmodified lines | ||
| 250 | 250 | resp->cookie = argp->cookie; |
| 251 | 251 | |
| 252 | 252 | dprintk("lockd: GRANTED called\n"); |
| 253 | − resp->status = nlmclnt_grant(svc_addr_in(rqstp), &argp->lock); | |
| 253 | + resp->status = nlmclnt_grant(svc_addr(rqstp), &argp->lock); | |
| 254 | 254 | dprintk("lockd: GRANTED status %d\n", ntohl(resp->status)); |
| 255 | 255 | return rpc_success; |
| 256 | 256 | } |
| @@ -207,7 +207,8 @@ int nlm_async_reply(struct nlm_rqst *, u32, const struct rpc_call_ops *); · 206 unmodified lines | ||
| 207 | 207 | struct nlm_wait * nlmclnt_prepare_block(struct nlm_host *host, struct file_lock *fl); |
| 208 | 208 | void nlmclnt_finish_block(struct nlm_wait *block); |
| 209 | 209 | int nlmclnt_block(struct nlm_wait *block, struct nlm_rqst *req, long timeout); |
| 210 | −__be32 nlmclnt_grant(const struct sockaddr_in *addr, const struct nlm_lock *); | |
| 210 | +__be32 nlmclnt_grant(const struct sockaddr *addr, | |
| 211 | + const struct nlm_lock *lock); | |
| 211 | 212 | void nlmclnt_recovery(struct nlm_host *); |
| 212 | 213 | int nlmclnt_reclaim(struct nlm_host *, struct file_lock *); |
| 213 | 214 | void nlmclnt_next_cookie(struct nlm_cookie *); |