summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/lockd/svc.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
index cf3899aec375..64f1c31b5853 100644
--- a/fs/lockd/svc.c
+++ b/fs/lockd/svc.c
@@ -230,17 +230,23 @@ static int create_lockd_listener(struct svc_serv *serv, char *name,
static int make_socks(struct svc_serv *serv)
{
static int warned;
- int err = 0;
+ int err;
err = create_lockd_listener(serv, "udp", nlm_udpport);
- if (err >= 0)
- err = create_lockd_listener(serv, "tcp", nlm_tcpport);
- if (err >= 0) {
- warned = 0;
- err = 0;
- } else if (warned++ == 0)
+ if (err < 0)
+ goto out_err;
+
+ err = create_lockd_listener(serv, "tcp", nlm_tcpport);
+ if (err < 0)
+ goto out_err;
+
+ warned = 0;
+ return 0;
+
+out_err:
+ if (warned++ == 0)
printk(KERN_WARNING
- "lockd_up: makesock failed, error=%d\n", err);
+ "lockd_up: makesock failed, error=%d\n", err);
return err;
}