lkml.org 
[lkml]   [2011]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v6 4/8] SUNRPC: setup rpcbind clients if service requires it
    On Tue, Oct 25, 2011 at 02:17:08PM +0300, Stanislav Kinsbursky wrote:
    > New function ("svc_uses_rpcbind") will be used to detect, that new service will
    > send portmapper register calls. For such services we will create rpcbind
    > clients and remove all stale portmap registrations.
    > Also, svc_rpcb_cleanup() will be set as sv_shutdown callback for such services
    > in case of this field wasn't initialized earlier. This will allow to destroy
    > rpcbind clients when no other users of them left.
    >
    > Note: Currently, any creating service will be detected as portmap user.
    > Probably, this is wrong. But now it depends on program versions "vs_hidden"
    > flag.
    >
    > Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
    >
    > ---
    > net/sunrpc/svc.c | 11 +++++++++--
    > 1 files changed, 9 insertions(+), 2 deletions(-)
    >
    > diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
    > index d2d61bf..918edc3 100644
    > --- a/net/sunrpc/svc.c
    > +++ b/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;

    Nit: could we convert this (and the previous failure to allocate
    sv_pools) to the usual pattern of collecting the cleanup at the end and
    jumping to it with a goto?

    Looks fine otherwise.

    --b.

    > + }
    > + if (!serv->sv_shutdown)
    > + serv->sv_shutdown = svc_rpcb_cleanup;
    > + }
    >
    > return serv;
    > }
    >


    \
     
     \ /
      Last update: 2011-10-27 23:29    [W:0.022 / U:1.028 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site