[PATCH 003 of 4] knfsd: Move makesock failed warning into make_socks.

From: NeilBrown
Date: Fri Jul 28 2006 - 01:09:32 EST



Thus it is printed for any path that leads to failure (make_socks is
called from two places).

Cc: "J. Bruce Fields" <bfields@xxxxxxxxxxxx>

Signed-off-by: Neil Brown <neilb@xxxxxxx>

### Diffstat output
./fs/lockd/svc.c | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)

diff .prev/fs/lockd/svc.c ./fs/lockd/svc.c
--- .prev/fs/lockd/svc.c 2006-07-28 15:00:55.000000000 +1000
+++ ./fs/lockd/svc.c 2006-07-28 15:01:30.000000000 +1000
@@ -227,15 +227,19 @@ static int make_socks(struct svc_serv *s
* If nlm_udpport or nlm_tcpport were set as module
* options, make those sockets unconditionally
*/
+ static int warned;
int err = 0;
if (proto == IPPROTO_UDP || nlm_udpport)
if (!find_socket(serv, IPPROTO_UDP))
err = svc_makesock(serv, IPPROTO_UDP, nlm_udpport);
- if (err)
- return err;
- if (proto == IPPROTO_TCP || nlm_tcpport)
+ if (err == 0 && (proto == IPPROTO_TCP || nlm_tcpport))
if (!find_socket(serv, IPPROTO_TCP))
err= svc_makesock(serv, IPPROTO_TCP, nlm_tcpport);
+ if (!err)
+ warned = 0;
+ else if (warned++ == 0)
+ printk(KERN_WARNING
+ "lockd_up: makesock failed, error=%d\n", err);
return err;
}

@@ -245,7 +249,6 @@ static int make_socks(struct svc_serv *s
int
lockd_up(int proto) /* Maybe add a 'family' option when IPv6 is supported ?? */
{
- static int warned;
struct svc_serv * serv;
int error = 0;

@@ -278,13 +281,8 @@ lockd_up(int proto) /* Maybe add a 'fami
goto out;
}

- if ((error = make_socks(serv, proto)) < 0) {
- if (warned++ == 0)
- printk(KERN_WARNING
- "lockd_up: makesock failed, error=%d\n", error);
+ if ((error = make_socks(serv, proto)) < 0)
goto destroy_and_out;
- }
- warned = 0;

/*
* Create the kernel thread and wait for it to start.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/