Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

lockd: change nlmclnt_grant() to take a "struct sockaddr *"

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.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

authored by

Chuck Lever and committed by
J. Bruce Fields
dcff09f1 6bfbe8af

+6 -6
+2 -3
fs/lockd/clntlock.c
··· 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 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;
+1 -1
fs/lockd/svc4proc.c
··· 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 }
+1 -1
fs/lockd/svcproc.c
··· 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 }
+2 -1
include/linux/lockd/lockd.h
··· 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 *);