* linux-next: nfs tree build failure
@ 2009-12-07 8:23 Stephen Rothwell
2009-12-07 22:32 ` Trond Myklebust
0 siblings, 1 reply; 13+ messages in thread
From: Stephen Rothwell @ 2009-12-07 8:23 UTC (permalink / raw)
To: Trond Myklebust; +Cc: linux-next, linux-kernel, Andy Adamson
Hi ,
Today's linux-next build (powerpc ppc44x_defconfig) failed like this:
fs/built-in.o: In function `nfs_readpage_retry':
read.c:(.text+0x79228): undefined reference to `nfs4_restart_rpc'
fs/built-in.o: In function `nfs_async_unlink_done':
unlink.c:(.text+0x7a0c0): undefined reference to `nfs4_restart_rpc'
fs/built-in.o: In function `nfs_writeback_done':
(.text+0x7b614): undefined reference to `nfs4_restart_rpc'
Caused by commit e608e79f1bf4b967afcf57777e63b5f0939b00e8 ("nfs41: call
free slot from nfs4_restart_rpc"). This build is done without
CONFIG_NFS_V4, so nfs4proc.o is not built.
I applied this patch for today:
From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Mon, 7 Dec 2009 19:14:54 +1100
Subject: [PATCH] nfs: fixup for non NFS_V4 build
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
fs/nfs/internal.h | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
index b1a020c..23f1fd2 100644
--- a/fs/nfs/internal.h
+++ b/fs/nfs/internal.h
@@ -197,9 +197,15 @@ extern const u32 nfs41_maxwrite_overhead;
#endif
/* nfs4proc.c */
-extern void nfs4_restart_rpc(struct rpc_task *, const struct nfs_client *);
#ifdef CONFIG_NFS_V4
+extern void nfs4_restart_rpc(struct rpc_task *, const struct nfs_client *);
extern struct rpc_procinfo nfs4_procedures[];
+#else
+static inline void nfs4_restart_rpc(struct rpc_task *task,
+ const struct nfs_client *client)
+{
+ rpc_restart_call(task);
+}
#endif
/* proc.c */
--
1.6.5.3
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: linux-next: nfs tree build failure 2009-12-07 8:23 linux-next: nfs tree build failure Stephen Rothwell @ 2009-12-07 22:32 ` Trond Myklebust 2009-12-07 22:53 ` Stephen Rothwell 0 siblings, 1 reply; 13+ messages in thread From: Trond Myklebust @ 2009-12-07 22:32 UTC (permalink / raw) To: Stephen Rothwell; +Cc: linux-next, linux-kernel, Andy Adamson On Mon, 2009-12-07 at 19:23 +1100, Stephen Rothwell wrote: > Hi , > > Today's linux-next build (powerpc ppc44x_defconfig) failed like this: > > fs/built-in.o: In function `nfs_readpage_retry': > read.c:(.text+0x79228): undefined reference to `nfs4_restart_rpc' > fs/built-in.o: In function `nfs_async_unlink_done': > unlink.c:(.text+0x7a0c0): undefined reference to `nfs4_restart_rpc' > fs/built-in.o: In function `nfs_writeback_done': > (.text+0x7b614): undefined reference to `nfs4_restart_rpc' > > Caused by commit e608e79f1bf4b967afcf57777e63b5f0939b00e8 ("nfs41: call > free slot from nfs4_restart_rpc"). This build is done without > CONFIG_NFS_V4, so nfs4proc.o is not built. Hi Stephen, The following patch (committed today) should fix the above... Thanks! Trond ----------------------------------------------------------------------------------------------- NFS: Fix up the declaration of nfs4_restart_rpc when NFSv4 not configured From: Trond Myklebust <Trond.Myklebust@netapp.com> Also rename it: it is used in generic code, and so should not have a 'nfs4' prefix. Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> --- fs/nfs/internal.h | 13 ++++++++++++- fs/nfs/nfs4proc.c | 25 +++++++------------------ fs/nfs/read.c | 2 +- fs/nfs/unlink.c | 2 +- fs/nfs/write.c | 2 +- 5 files changed, 22 insertions(+), 22 deletions(-) diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index b1a020c..29e464d 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h @@ -197,7 +197,6 @@ extern const u32 nfs41_maxwrite_overhead; #endif /* nfs4proc.c */ -extern void nfs4_restart_rpc(struct rpc_task *, const struct nfs_client *); #ifdef CONFIG_NFS_V4 extern struct rpc_procinfo nfs4_procedures[]; #endif @@ -367,3 +366,15 @@ unsigned int nfs_page_array_len(unsigned int base, size_t len) return ((unsigned long)len + (unsigned long)base + PAGE_SIZE - 1) >> PAGE_SHIFT; } + +/* + * Helper for restarting RPC calls in the possible presence of NFSv4.1 + * sessions. + */ +static inline void nfs_restart_rpc(struct rpc_task *task, const struct nfs_client *clp) +{ + if (nfs4_has_session(clp)) + rpc_restart_call_prepare(task); + else + rpc_restart_call(task); +} diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index fbae2c9..acde776 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -625,17 +625,6 @@ static void nfs4_sequence_done(const struct nfs_server *server, #endif /* CONFIG_NFS_V4_1 */ } -void nfs4_restart_rpc(struct rpc_task *task, const struct nfs_client *clp) -{ -#ifdef CONFIG_NFS_V4_1 - if (nfs4_has_session(clp)) { - rpc_restart_call_prepare(task); - return; - } -#endif /* CONFIG_NFS_V4_1 */ - rpc_restart_call(task); -} - static void update_changeattr(struct inode *dir, struct nfs4_change_info *cinfo) { struct nfs_inode *nfsi = NFS_I(dir); @@ -1739,7 +1728,7 @@ static void nfs4_close_done(struct rpc_task *task, void *data) break; default: if (nfs4_async_handle_error(task, server, state) == -EAGAIN) { - nfs4_restart_rpc(task, server->nfs_client); + nfs_restart_rpc(task, server->nfs_client); return; } } @@ -2974,7 +2963,7 @@ static int nfs4_read_done(struct rpc_task *task, struct nfs_read_data *data) nfs4_sequence_done(server, &data->res.seq_res, task->tk_status); if (nfs4_async_handle_error(task, server, data->args.context->state) == -EAGAIN) { - nfs4_restart_rpc(task, server->nfs_client); + nfs_restart_rpc(task, server->nfs_client); return -EAGAIN; } @@ -2998,7 +2987,7 @@ static int nfs4_write_done(struct rpc_task *task, struct nfs_write_data *data) task->tk_status); if (nfs4_async_handle_error(task, NFS_SERVER(inode), data->args.context->state) == -EAGAIN) { - nfs4_restart_rpc(task, NFS_SERVER(inode)->nfs_client); + nfs_restart_rpc(task, NFS_SERVER(inode)->nfs_client); return -EAGAIN; } if (task->tk_status >= 0) { @@ -3026,7 +3015,7 @@ static int nfs4_commit_done(struct rpc_task *task, struct nfs_write_data *data) nfs4_sequence_done(NFS_SERVER(inode), &data->res.seq_res, task->tk_status); if (nfs4_async_handle_error(task, NFS_SERVER(inode), NULL) == -EAGAIN) { - nfs4_restart_rpc(task, NFS_SERVER(inode)->nfs_client); + nfs_restart_rpc(task, NFS_SERVER(inode)->nfs_client); return -EAGAIN; } nfs_refresh_inode(inode, data->res.fattr); @@ -3737,7 +3726,7 @@ static void nfs4_locku_done(struct rpc_task *task, void *data) break; default: if (nfs4_async_handle_error(task, calldata->server, NULL) == -EAGAIN) - nfs4_restart_rpc(task, + nfs_restart_rpc(task, calldata->server->nfs_client); } } @@ -4392,7 +4381,7 @@ static void nfs4_get_lease_time_done(struct rpc_task *task, void *calldata) dprintk("%s Retry: tk_status %d\n", __func__, task->tk_status); rpc_delay(task, NFS4_POLL_RETRY_MIN); task->tk_status = 0; - nfs4_restart_rpc(task, data->clp); + nfs_restart_rpc(task, data->clp); return; } dprintk("<-- %s\n", __func__); @@ -4854,7 +4843,7 @@ void nfs41_sequence_call_done(struct rpc_task *task, void *data) if (_nfs4_async_handle_error(task, NULL, clp, NULL) == -EAGAIN) { - nfs4_restart_rpc(task, clp); + nfs_restart_rpc(task, clp); return; } } diff --git a/fs/nfs/read.c b/fs/nfs/read.c index d319bfb..db9b360 100644 --- a/fs/nfs/read.c +++ b/fs/nfs/read.c @@ -368,7 +368,7 @@ static void nfs_readpage_retry(struct rpc_task *task, struct nfs_read_data *data argp->offset += resp->count; argp->pgbase += resp->count; argp->count -= resp->count; - nfs4_restart_rpc(task, NFS_SERVER(data->inode)->nfs_client); + nfs_restart_rpc(task, NFS_SERVER(data->inode)->nfs_client); } /* diff --git a/fs/nfs/unlink.c b/fs/nfs/unlink.c index 1064c91..6da3d3f 100644 --- a/fs/nfs/unlink.c +++ b/fs/nfs/unlink.c @@ -83,7 +83,7 @@ static void nfs_async_unlink_done(struct rpc_task *task, void *calldata) struct inode *dir = data->dir; if (!NFS_PROTO(dir)->unlink_done(task, dir)) - nfs4_restart_rpc(task, NFS_SERVER(dir)->nfs_client); + nfs_restart_rpc(task, NFS_SERVER(dir)->nfs_client); } /** diff --git a/fs/nfs/write.c b/fs/nfs/write.c index d546c60..a28123b 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -1216,7 +1216,7 @@ int nfs_writeback_done(struct rpc_task *task, struct nfs_write_data *data) */ argp->stable = NFS_FILE_SYNC; } - nfs4_restart_rpc(task, server->nfs_client); + nfs_restart_rpc(task, server->nfs_client); return -EAGAIN; } if (time_before(complain, jiffies)) { ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: linux-next: nfs tree build failure 2009-12-07 22:32 ` Trond Myklebust @ 2009-12-07 22:53 ` Stephen Rothwell 0 siblings, 0 replies; 13+ messages in thread From: Stephen Rothwell @ 2009-12-07 22:53 UTC (permalink / raw) To: Trond Myklebust; +Cc: linux-next, linux-kernel, Andy Adamson [-- Attachment #1: Type: text/plain, Size: 289 bytes --] Hi Trond, On Mon, 07 Dec 2009 17:32:45 -0500 Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > > The following patch (committed today) should fix the above... Thanks. -- Cheers, Stephen Rothwell sfr@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ [-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* linux-next: nfs tree build failure
@ 2010-02-01 7:38 Stephen Rothwell
2010-02-01 14:15 ` Trond Myklebust
0 siblings, 1 reply; 13+ messages in thread
From: Stephen Rothwell @ 2010-02-01 7:38 UTC (permalink / raw)
To: Trond Myklebust; +Cc: linux-next, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 510 bytes --]
Hi Trond,
Today's linux-next build (sparc defconfig) failed like this:
fs/nfs/write.c: In function 'nfs_wb_page':
fs/nfs/write.c:1478: error: implicit declaration of function 'nfs_commit_inode'
Caused by commit d01b3158b56e292dbb3eea711a51a1d3dbec5094 ("NFS: Simplify
nfs_wb_page()"). Neither CONFIG_NFS_V3 nor CONFIG_NFS_V4 is set in this
build.
I have reverted that commit for today.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: linux-next: nfs tree build failure 2010-02-01 7:38 Stephen Rothwell @ 2010-02-01 14:15 ` Trond Myklebust 2010-02-01 23:24 ` Stephen Rothwell 0 siblings, 1 reply; 13+ messages in thread From: Trond Myklebust @ 2010-02-01 14:15 UTC (permalink / raw) To: Stephen Rothwell; +Cc: linux-next, linux-kernel On Mon, 2010-02-01 at 18:38 +1100, Stephen Rothwell wrote: > Hi Trond, > > Today's linux-next build (sparc defconfig) failed like this: > > fs/nfs/write.c: In function 'nfs_wb_page': > fs/nfs/write.c:1478: error: implicit declaration of function 'nfs_commit_inode' > > Caused by commit d01b3158b56e292dbb3eea711a51a1d3dbec5094 ("NFS: Simplify > nfs_wb_page()"). Neither CONFIG_NFS_V3 nor CONFIG_NFS_V4 is set in this > build. > > I have reverted that commit for today. Hi Stephen, Sorry. There was a 1 line change that somehow slipped out of the final revision of the patch. It should be fixed now. Cheers Trond ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: linux-next: nfs tree build failure 2010-02-01 14:15 ` Trond Myklebust @ 2010-02-01 23:24 ` Stephen Rothwell 0 siblings, 0 replies; 13+ messages in thread From: Stephen Rothwell @ 2010-02-01 23:24 UTC (permalink / raw) To: Trond Myklebust; +Cc: linux-next, linux-kernel [-- Attachment #1: Type: text/plain, Size: 348 bytes --] Hi Trond, On Mon, 01 Feb 2010 09:15:13 -0500 Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > > Sorry. There was a 1 line change that somehow slipped out of the final > revision of the patch. It should be fixed now. Thanks. -- Cheers, Stephen Rothwell sfr@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ [-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* linux-next: nfs tree build failure
@ 2009-12-04 0:36 Stephen Rothwell
0 siblings, 0 replies; 13+ messages in thread
From: Stephen Rothwell @ 2009-12-04 0:36 UTC (permalink / raw)
To: Trond Myklebust; +Cc: linux-next, linux-kernel, NeilBrown
[-- Attachment #1: Type: text/plain, Size: 593 bytes --]
Hi Trond,
Today's linux-next build (powerpc ppc64_defconfig) failed like this:
fs/nfs/nfs4proc.c: In function 'nfs4_handle_exception':
fs/nfs/nfs4proc.c:282: error: 'err' undeclared (first use in this function)
Caused by commit b3508de20f0fc48f5e597b189eed930343ed1441
("NFS4ERR_FILE_OPEN handling in Linux/NFS").
Please, please build test, at least, *before* you publish a tree that is
included in linux-next. I have used the nfs tree from next-20091203 for
today.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread* linux-next: nfs tree build failure
@ 2009-03-16 10:55 Stephen Rothwell
2009-03-16 12:19 ` Trond Myklebust
0 siblings, 1 reply; 13+ messages in thread
From: Stephen Rothwell @ 2009-03-16 10:55 UTC (permalink / raw)
To: Trond Myklebust; +Cc: linux-next
[-- Attachment #1: Type: text/plain, Size: 471 bytes --]
Hi Trond,
Today's linux-next build (sparc defconfig) failed like this:
fs/nfs/write.c:568: error: redefinition of 'nfs_need_commit'
fs/nfs/write.c:542: error: previous definition of 'nfs_need_commit' was here
Caused by commit fb8a1f11b64e213d94dfa1cebb2a42a7b8c115c4 ("NFS: cleanup
- remove struct nfs_inode->ncommit") which I have reverted for today.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: linux-next: nfs tree build failure 2009-03-16 10:55 Stephen Rothwell @ 2009-03-16 12:19 ` Trond Myklebust 2009-03-16 23:04 ` Stephen Rothwell 0 siblings, 1 reply; 13+ messages in thread From: Trond Myklebust @ 2009-03-16 12:19 UTC (permalink / raw) To: Stephen Rothwell; +Cc: linux-next On Mon, 2009-03-16 at 21:55 +1100, Stephen Rothwell wrote: > Hi Trond, > > Today's linux-next build (sparc defconfig) failed like this: > > fs/nfs/write.c:568: error: redefinition of 'nfs_need_commit' > fs/nfs/write.c:542: error: previous definition of 'nfs_need_commit' was here > > Caused by commit fb8a1f11b64e213d94dfa1cebb2a42a7b8c115c4 ("NFS: cleanup > - remove struct nfs_inode->ncommit") which I have reverted for today. Should be fixed now. Somehow the first definition had migrated out of the #ifdef section immediately following it. Apologies Trond ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: linux-next: nfs tree build failure 2009-03-16 12:19 ` Trond Myklebust @ 2009-03-16 23:04 ` Stephen Rothwell 0 siblings, 0 replies; 13+ messages in thread From: Stephen Rothwell @ 2009-03-16 23:04 UTC (permalink / raw) To: Trond Myklebust; +Cc: linux-next [-- Attachment #1: Type: text/plain, Size: 345 bytes --] Hi Trond, On Mon, 16 Mar 2009 08:19:26 -0400 Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > > Should be fixed now. Somehow the first definition had migrated out of > the #ifdef section immediately following it. Thanks. -- Cheers, Stephen Rothwell sfr@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* linux-next: nfs tree build failure
@ 2009-03-12 0:26 Stephen Rothwell
2009-03-12 18:54 ` Trond Myklebust
0 siblings, 1 reply; 13+ messages in thread
From: Stephen Rothwell @ 2009-03-12 0:26 UTC (permalink / raw)
To: Trond Myklebust; +Cc: linux-next, Ian Dall
[-- Attachment #1: Type: text/plain, Size: 511 bytes --]
Hi Trond,
Today's linux-next build (powerpc ppc64_defconfig) failed like this:
fs/built-in.o: In function `.nfs_get_client':
client.c:(.text+0x115010): undefined reference to `.__ipv6_addr_type'
# CONFIG_IPV6 is not set
Probably caused by commit d7371c41b0cda782256b1df759df4e8d4724584c ("Bug
11061, NFS mounts dropped").
I have used the nfs tree from next-20090311 instead of today's.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: linux-next: nfs tree build failure 2009-03-12 0:26 Stephen Rothwell @ 2009-03-12 18:54 ` Trond Myklebust 2009-03-12 22:07 ` Stephen Rothwell 0 siblings, 1 reply; 13+ messages in thread From: Trond Myklebust @ 2009-03-12 18:54 UTC (permalink / raw) To: Stephen Rothwell; +Cc: linux-next, Ian Dall On Thu, 2009-03-12 at 11:26 +1100, Stephen Rothwell wrote: > Hi Trond, > > Today's linux-next build (powerpc ppc64_defconfig) failed like this: > > fs/built-in.o: In function `.nfs_get_client': > client.c:(.text+0x115010): undefined reference to `.__ipv6_addr_type' > > # CONFIG_IPV6 is not set > > Probably caused by commit d7371c41b0cda782256b1df759df4e8d4724584c ("Bug > 11061, NFS mounts dropped"). > > I have used the nfs tree from next-20090311 instead of today's. Should be fixed in today's tree. I appended the following patch: ----------------------------------------------------------------- From: Trond Myklebust <Trond.Myklebust@netapp.com> Subject: NFS: Fix the fix to Bugzilla #11061, when IPv6 isn't defined... Stephen Rothwell reports: Today's linux-next build (powerpc ppc64_defconfig) failed like this: fs/built-in.o: In function `.nfs_get_client': client.c:(.text+0x115010): undefined reference to `.__ipv6_addr_type' Fix by moving the IPV6 specific parts of commit d7371c41b0cda782256b1df759df4e8d4724584c ("Bug 11061, NFS mounts dropped") into the '#ifdef IPV6..." section. Also fix up a couple of formatting issues. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> --- fs/nfs/client.c | 68 ++++++++++++++++++++++++++++++++----------------------- 1 files changed, 39 insertions(+), 29 deletions(-) diff --git a/fs/nfs/client.c b/fs/nfs/client.c index 06654b8..574158a 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c @@ -255,6 +255,32 @@ static int nfs_sockaddr_match_ipaddr(const struct sockaddr *sa1, } return 0; } + +/* + * Test if two ip6 socket addresses refer to the same socket by + * comparing relevant fields. The padding bytes specifically, are not + * compared. sin6_flowinfo is not compared because it only affects QoS + * and sin6_scope_id is only compared if the address is "link local" + * because "link local" addresses need only be unique to a specific + * link. Conversely, ordinary unicast addresses might have different + * sin6_scope_id. + * + * The caller should ensure both socket addresses are AF_INET6. + */ +static int nfs_sockaddr_cmp_ip6(const struct sockaddr *sa1, + const struct sockaddr *sa2) +{ + const struct sockaddr_in6 *saddr1 = (const struct sockaddr_in6 *)sa1; + const struct sockaddr_in6 *saddr2 = (const struct sockaddr_in6 *)sa2; + + if (!ipv6_addr_equal(&saddr1->sin6_addr, + &saddr1->sin6_addr)) + return 0; + if (ipv6_addr_scope(&saddr1->sin6_addr) == IPV6_ADDR_SCOPE_LINKLOCAL && + saddr1->sin6_scope_id != saddr2->sin6_scope_id) + return 0; + return saddr1->sin6_port == saddr2->sin6_port; +} #else static int nfs_sockaddr_match_ipaddr4(const struct sockaddr_in *sa1, const struct sockaddr_in *sa2) @@ -270,6 +296,12 @@ static int nfs_sockaddr_match_ipaddr(const struct sockaddr *sa1, return nfs_sockaddr_match_ipaddr4((const struct sockaddr_in *)sa1, (const struct sockaddr_in *)sa2); } + +static int nfs_sockaddr_cmp_ip6(const struct sockaddr * sa1, + const struct sockaddr * sa2) +{ + return 0; +} #endif /* @@ -279,38 +311,18 @@ static int nfs_sockaddr_match_ipaddr(const struct sockaddr *sa1, * * The caller should ensure both socket addresses are AF_INET. */ -static int nfs_sockaddr_cmp_ip4(const struct sockaddr_in * saddr1, - const struct sockaddr_in * saddr2) +static int nfs_sockaddr_cmp_ip4(const struct sockaddr *sa1, + const struct sockaddr *sa2) { + const struct sockaddr_in *saddr1 = (const struct sockaddr_in *)sa1; + const struct sockaddr_in *saddr2 = (const struct sockaddr_in *)sa2; + if (saddr1->sin_addr.s_addr != saddr2->sin_addr.s_addr) return 0; return saddr1->sin_port == saddr2->sin_port; } /* - * Test if two ip6 socket addresses refer to the same socket by - * comparing relevant fields. The padding bytes specifically, are not - * compared. sin6_flowinfo is not compared because it only affects QoS - * and sin6_scope_id is only compared if the address is "link local" - * because "link local" addresses need only be unique to a specific - * link. Conversely, ordinary unicast addresses might have different - * sin6_scope_id. - * - * The caller should ensure both socket addresses are AF_INET6. - */ -static int nfs_sockaddr_cmp_ip6 (const struct sockaddr_in6 * saddr1, - const struct sockaddr_in6 * saddr2) -{ - if (!ipv6_addr_equal(&saddr1->sin6_addr, - &saddr1->sin6_addr)) - return 0; - if (ipv6_addr_scope(&saddr1->sin6_addr) == IPV6_ADDR_SCOPE_LINKLOCAL && - saddr1->sin6_scope_id != saddr2->sin6_scope_id) - return 0; - return saddr1->sin6_port == saddr2->sin6_port; -} - -/* * Test if two socket addresses represent the same actual socket, * by comparing (only) relevant fields. */ @@ -322,11 +334,9 @@ static int nfs_sockaddr_cmp(const struct sockaddr *sa1, switch (sa1->sa_family) { case AF_INET: - return nfs_sockaddr_cmp_ip4((const struct sockaddr_in *) sa1, - (const struct sockaddr_in *) sa2); + return nfs_sockaddr_cmp_ip4(sa1, sa2); case AF_INET6: - return nfs_sockaddr_cmp_ip6((const struct sockaddr_in6 *) sa1, - (const struct sockaddr_in6 *) sa2); + return nfs_sockaddr_cmp_ip6(sa1, sa2); } return 0; } ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: linux-next: nfs tree build failure 2009-03-12 18:54 ` Trond Myklebust @ 2009-03-12 22:07 ` Stephen Rothwell 0 siblings, 0 replies; 13+ messages in thread From: Stephen Rothwell @ 2009-03-12 22:07 UTC (permalink / raw) To: Trond Myklebust; +Cc: linux-next, Ian Dall [-- Attachment #1: Type: text/plain, Size: 491 bytes --] Hi Trond, On Thu, 12 Mar 2009 14:54:32 -0400 Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > > Should be fixed in today's tree. I appended the following patch: > ----------------------------------------------------------------- > From: Trond Myklebust <Trond.Myklebust@netapp.com> > Subject: NFS: Fix the fix to Bugzilla #11061, when IPv6 isn't defined... Thanks. -- Cheers, Stephen Rothwell sfr@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2010-02-01 23:24 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-12-07 8:23 linux-next: nfs tree build failure Stephen Rothwell 2009-12-07 22:32 ` Trond Myklebust 2009-12-07 22:53 ` Stephen Rothwell -- strict thread matches above, loose matches on Subject: below -- 2010-02-01 7:38 Stephen Rothwell 2010-02-01 14:15 ` Trond Myklebust 2010-02-01 23:24 ` Stephen Rothwell 2009-12-04 0:36 Stephen Rothwell 2009-03-16 10:55 Stephen Rothwell 2009-03-16 12:19 ` Trond Myklebust 2009-03-16 23:04 ` Stephen Rothwell 2009-03-12 0:26 Stephen Rothwell 2009-03-12 18:54 ` Trond Myklebust 2009-03-12 22:07 ` Stephen Rothwell
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).