]> git.karo-electronics.de Git - linux-beck.git/commit
SUNRPC: Replace svc_addr_u by sockaddr_storage
authorMi Jinlong <mijinlong@cn.fujitsu.com>
Tue, 30 Aug 2011 09:18:41 +0000 (17:18 +0800)
committerJ. Bruce Fields <bfields@redhat.com>
Wed, 14 Sep 2011 12:21:48 +0000 (08:21 -0400)
commit849a1cf13d4394d398d91752166e92e9ecd64f8d
tree475c08721cb327b924035144f771dd2d85eda0cd
parent11fcee0293a6d9f0973e04f8b3fb6cd15a55bcce
SUNRPC: Replace svc_addr_u by sockaddr_storage

For IPv6 local address, lockd can not callback to client for
missing scope id when binding address at inet6_bind:

 324       if (addr_type & IPV6_ADDR_LINKLOCAL) {
 325               if (addr_len >= sizeof(struct sockaddr_in6) &&
 326                   addr->sin6_scope_id) {
 327                       /* Override any existing binding, if another one
 328                        * is supplied by user.
 329                        */
 330                       sk->sk_bound_dev_if = addr->sin6_scope_id;
 331               }
 332
 333               /* Binding to link-local address requires an interface */
 334               if (!sk->sk_bound_dev_if) {
 335                       err = -EINVAL;
 336                       goto out_unlock;
 337               }

Replacing svc_addr_u by sockaddr_storage, let rqstp->rq_daddr contains more info
besides address.

Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/lockd/host.c
fs/nfsd/nfs4state.c
include/linux/sunrpc/svc.h
net/sunrpc/svc_xprt.c
net/sunrpc/svcsock.c