History

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.

Chuck Lever committed 18 years ago

Commit dcff09f1 parent 6bfbe8a4 files · +6 −6Browse files

Unified · Split

4 files
  1. fs/lockd/clntlock.c +2 −3
  2. fs/lockd/svc4proc.c +1 −1
  3. fs/lockd/svcproc.c +1 −1
  4. include/linux/lockd/lockd.h +2 −1
fs/lockd/clntlock.c+2−3
@@ -141,7 +141,7 @@ int nlmclnt_block(struct nlm_wait *block, struct nlm_rqst *req, long timeout) · 140 unmodified lines
141/*141/*
142 * The server lockd has called us back to tell us the lock was granted142 * 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 const struct file_lock *fl = &lock->fl;146 const struct file_lock *fl = &lock->fl;
147 const struct nfs_fh *fh = &lock->fh;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 if (fl_blocked->fl_u.nfs_fl.owner->pid != lock->svid)166 if (fl_blocked->fl_u.nfs_fl.owner->pid != lock->svid)
167 continue;167 continue;
168 if (!nlm_cmp_addr(nlm_addr(block->b_host),168 if (!nlm_cmp_addr(nlm_addr(block->b_host), addr))
169 (struct sockaddr *)addr))
170 continue;169 continue;
171 if (nfs_compare_fh(NFS_FH(fl_blocked->fl_file->f_path.dentry->d_inode) ,fh) != 0)170 if (nfs_compare_fh(NFS_FH(fl_blocked->fl_file->f_path.dentry->d_inode) ,fh) != 0)
172 continue;171 continue;
fs/lockd/svc4proc.c+1−1
@@ -220,7 +220,7 @@ nlm4svc_proc_granted(struct svc_rqst *rqstp, struct nlm_args *argp, · 219 unmodified lines
220 resp->cookie = argp->cookie;220 resp->cookie = argp->cookie;
221 221
222 dprintk("lockd: GRANTED called\n");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 dprintk("lockd: GRANTED status %d\n", ntohl(resp->status));224 dprintk("lockd: GRANTED status %d\n", ntohl(resp->status));
225 return rpc_success;225 return rpc_success;
226}226}
fs/lockd/svcproc.c+1−1
@@ -250,7 +250,7 @@ nlmsvc_proc_granted(struct svc_rqst *rqstp, struct nlm_args *argp, · 249 unmodified lines
250 resp->cookie = argp->cookie;250 resp->cookie = argp->cookie;
251 251
252 dprintk("lockd: GRANTED called\n");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 dprintk("lockd: GRANTED status %d\n", ntohl(resp->status));254 dprintk("lockd: GRANTED status %d\n", ntohl(resp->status));
255 return rpc_success;255 return rpc_success;
256}256}
include/linux/lockd/lockd.h+2−1
@@ -207,7 +207,8 @@ int nlm_async_reply(struct nlm_rqst *, u32, const struct rpc_call_ops *); · 206 unmodified lines
207struct nlm_wait * nlmclnt_prepare_block(struct nlm_host *host, struct file_lock *fl);207struct nlm_wait * nlmclnt_prepare_block(struct nlm_host *host, struct file_lock *fl);
208void nlmclnt_finish_block(struct nlm_wait *block);208void nlmclnt_finish_block(struct nlm_wait *block);
209int nlmclnt_block(struct nlm_wait *block, struct nlm_rqst *req, long timeout);209int 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);
211void nlmclnt_recovery(struct nlm_host *);212void nlmclnt_recovery(struct nlm_host *);
212int nlmclnt_reclaim(struct nlm_host *, struct file_lock *);213int nlmclnt_reclaim(struct nlm_host *, struct file_lock *);
213void nlmclnt_next_cookie(struct nlm_cookie *);214void nlmclnt_next_cookie(struct nlm_cookie *);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t