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>
This commit is contained in:
parent
6bfbe8af46
commit
dcff09f124
@ -141,7 +141,7 @@ int nlmclnt_block(struct nlm_wait *block, struct nlm_rqst *req, long timeout)
|
|||||||
/*
|
/*
|
||||||
* The server lockd has called us back to tell us the lock was granted
|
* The server lockd has called us back to tell us the lock was granted
|
||||||
*/
|
*/
|
||||||
__be32 nlmclnt_grant(const struct sockaddr_in *addr, const struct nlm_lock *lock)
|
__be32 nlmclnt_grant(const struct sockaddr *addr, const struct nlm_lock *lock)
|
||||||
{
|
{
|
||||||
const struct file_lock *fl = &lock->fl;
|
const struct file_lock *fl = &lock->fl;
|
||||||
const struct nfs_fh *fh = &lock->fh;
|
const struct nfs_fh *fh = &lock->fh;
|
||||||
@ -165,8 +165,7 @@ __be32 nlmclnt_grant(const struct sockaddr_in *addr, const struct nlm_lock *lock
|
|||||||
*/
|
*/
|
||||||
if (fl_blocked->fl_u.nfs_fl.owner->pid != lock->svid)
|
if (fl_blocked->fl_u.nfs_fl.owner->pid != lock->svid)
|
||||||
continue;
|
continue;
|
||||||
if (!nlm_cmp_addr(nlm_addr(block->b_host),
|
if (!nlm_cmp_addr(nlm_addr(block->b_host), addr))
|
||||||
(struct sockaddr *)addr))
|
|
||||||
continue;
|
continue;
|
||||||
if (nfs_compare_fh(NFS_FH(fl_blocked->fl_file->f_path.dentry->d_inode) ,fh) != 0)
|
if (nfs_compare_fh(NFS_FH(fl_blocked->fl_file->f_path.dentry->d_inode) ,fh) != 0)
|
||||||
continue;
|
continue;
|
||||||
|
@ -220,7 +220,7 @@ nlm4svc_proc_granted(struct svc_rqst *rqstp, struct nlm_args *argp,
|
|||||||
resp->cookie = argp->cookie;
|
resp->cookie = argp->cookie;
|
||||||
|
|
||||||
dprintk("lockd: GRANTED called\n");
|
dprintk("lockd: GRANTED called\n");
|
||||||
resp->status = nlmclnt_grant(svc_addr_in(rqstp), &argp->lock);
|
resp->status = nlmclnt_grant(svc_addr(rqstp), &argp->lock);
|
||||||
dprintk("lockd: GRANTED status %d\n", ntohl(resp->status));
|
dprintk("lockd: GRANTED status %d\n", ntohl(resp->status));
|
||||||
return rpc_success;
|
return rpc_success;
|
||||||
}
|
}
|
||||||
|
@ -250,7 +250,7 @@ nlmsvc_proc_granted(struct svc_rqst *rqstp, struct nlm_args *argp,
|
|||||||
resp->cookie = argp->cookie;
|
resp->cookie = argp->cookie;
|
||||||
|
|
||||||
dprintk("lockd: GRANTED called\n");
|
dprintk("lockd: GRANTED called\n");
|
||||||
resp->status = nlmclnt_grant(svc_addr_in(rqstp), &argp->lock);
|
resp->status = nlmclnt_grant(svc_addr(rqstp), &argp->lock);
|
||||||
dprintk("lockd: GRANTED status %d\n", ntohl(resp->status));
|
dprintk("lockd: GRANTED status %d\n", ntohl(resp->status));
|
||||||
return rpc_success;
|
return rpc_success;
|
||||||
}
|
}
|
||||||
|
@ -207,7 +207,8 @@ int nlm_async_reply(struct nlm_rqst *, u32, const struct rpc_call_ops *);
|
|||||||
struct nlm_wait * nlmclnt_prepare_block(struct nlm_host *host, struct file_lock *fl);
|
struct nlm_wait * nlmclnt_prepare_block(struct nlm_host *host, struct file_lock *fl);
|
||||||
void nlmclnt_finish_block(struct nlm_wait *block);
|
void nlmclnt_finish_block(struct nlm_wait *block);
|
||||||
int nlmclnt_block(struct nlm_wait *block, struct nlm_rqst *req, long timeout);
|
int nlmclnt_block(struct nlm_wait *block, struct nlm_rqst *req, long timeout);
|
||||||
__be32 nlmclnt_grant(const struct sockaddr_in *addr, const struct nlm_lock *);
|
__be32 nlmclnt_grant(const struct sockaddr *addr,
|
||||||
|
const struct nlm_lock *lock);
|
||||||
void nlmclnt_recovery(struct nlm_host *);
|
void nlmclnt_recovery(struct nlm_host *);
|
||||||
int nlmclnt_reclaim(struct nlm_host *, struct file_lock *);
|
int nlmclnt_reclaim(struct nlm_host *, struct file_lock *);
|
||||||
void nlmclnt_next_cookie(struct nlm_cookie *);
|
void nlmclnt_next_cookie(struct nlm_cookie *);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user