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; }