From c3e210563c884852f1179536efeeeaeed3ff04eb Mon Sep 17 00:00:00 2001 From: Stanislav Kinsbursky Date: Tue, 25 Oct 2011 14:17:08 +0300 Subject: [PATCH] --- yaml --- r: 273755 b: refs/heads/master c: e40f5e29ef0909ecba1d759cc930efb7a9a7d935 h: refs/heads/master i: 273753: 237a989914c3082e154c080558f6c84def5a4a0a 273751: d2741e69b9a189bf9aa849048c019010b44b11ff v: v3 --- [refs] | 2 +- trunk/net/sunrpc/svc.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index a7152141bbe7..83be81152802 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d99085605cd245d8f24858e9d0b06013e13aa044 +refs/heads/master: e40f5e29ef0909ecba1d759cc930efb7a9a7d935 diff --git a/trunk/net/sunrpc/svc.c b/trunk/net/sunrpc/svc.c index d2d61bfa3306..918edc310fd1 100644 --- a/trunk/net/sunrpc/svc.c +++ b/trunk/net/sunrpc/svc.c @@ -454,8 +454,15 @@ __svc_create(struct svc_program *prog, unsigned int bufsize, int npools, spin_lock_init(&pool->sp_lock); } - /* Remove any stale portmap registrations */ - svc_unregister(serv); + if (svc_uses_rpcbind(serv)) { + if (svc_rpcb_setup(serv) < 0) { + kfree(serv->sv_pools); + kfree(serv); + return NULL; + } + if (!serv->sv_shutdown) + serv->sv_shutdown = svc_rpcb_cleanup; + } return serv; }