This saves us a couple of lines of cleanup code for each call.
 Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
                /* Existing NLM servers accept AUTH_UNIX only */
                clnt = rpc_create_client(xprt, host->h_name, &nlm_program,
                                        host->h_version, RPC_AUTH_UNIX);
-               if (IS_ERR(clnt)) {
-                       xprt_destroy(xprt);
+               if (IS_ERR(clnt))
                        goto forgetit;
-               }
                clnt->cl_autobind = 1;  /* turn on pmap queries */
                xprt->nocong = 1;       /* No congestion control for NLM */
                xprt->resvport = 1;     /* NLM requires a reserved port */
 
                                &nsm_program, SM_VERSION,
                                RPC_AUTH_NULL);
        if (IS_ERR(clnt))
-               goto out_destroy;
+               goto out_err;
        clnt->cl_softrtry = 1;
        clnt->cl_chatty   = 1;
        clnt->cl_oneshot  = 1;
        xprt->resvport = 1;     /* NSM requires a reserved port */
        return clnt;
 
-out_destroy:
-       xprt_destroy(xprt);
+out_err:
        return clnt;
 }
 
 
        return clnt;
 
 out_fail:
-       xprt_destroy(xprt);
        return clnt;
 }
 
                if (IS_ERR(clnt)) {
                        up_write(&clp->cl_sem);
                        printk(KERN_WARNING "NFS: cannot create RPC client.\n");
-                       xprt_destroy(xprt);
                        err = PTR_ERR(clnt);
                        goto out_fail;
                }
 
        clnt = rpc_create_client(xprt, hostname,
                                &mnt_program, version,
                                RPC_AUTH_UNIX);
-       if (IS_ERR(clnt)) {
-               xprt_destroy(xprt);
-       } else {
+       if (!IS_ERR(clnt)) {
                clnt->cl_softrtry = 1;
                clnt->cl_chatty   = 1;
                clnt->cl_oneshot  = 1;
 
        clnt = rpc_create_client(xprt, hostname, program, 1, RPC_AUTH_UNIX);
        if (IS_ERR(clnt)) {
                dprintk("NFSD: couldn't create callback client\n");
-               goto out_xprt;
+               goto out_err;
        }
        clnt->cl_intr = 0;
        clnt->cl_softrtry = 1;
 out_clnt:
        rpc_shutdown_client(clnt);
        goto out_err;
-out_xprt:
-       xprt_destroy(xprt);
 out_err:
        dprintk("NFSD: warning: no callback path to client %.*s\n",
                (int)clp->cl_name.len, clp->cl_name.data);
 
                kfree(clnt->cl_server);
        kfree(clnt);
 out_err:
+       xprt_destroy(xprt);
        return ERR_PTR(err);
 }
 
 
        clnt = rpc_create_client(xprt, hostname,
                                &pmap_program, RPC_PMAP_VERSION,
                                RPC_AUTH_UNIX);
-       if (IS_ERR(clnt)) {
-               xprt_destroy(xprt);
-       } else {
+       if (!IS_ERR(clnt)) {
                clnt->cl_softrtry = 1;
                clnt->cl_chatty   = 1;
                clnt->cl_oneshot  = 1;
 
 
 /* Client transport */
 EXPORT_SYMBOL(xprt_create_proto);
-EXPORT_SYMBOL(xprt_destroy);
 EXPORT_SYMBOL(xprt_set_timeout);
 EXPORT_SYMBOL(xprt_udp_slot_table_entries);
 EXPORT_SYMBOL(xprt_tcp_slot_table_entries);