gss_auth->dentry = rpc_mkpipe(clnt->cl_dentry, gss_auth->mech->gm_name, clnt, &gss_upcall_ops, RPC_PIPE_WAIT_FOR_OPEN); 
snprintf(gss_auth->path, sizeof(gss_auth->path), "%s/%s", clnt->cl_pathname, gss_auth->mech->gm_name); gss_auth->dentry = rpc_mkpipe(gss_auth->path, clnt, &gss_upcall_ops, RPC_PIPE_WAIT_FOR_OPEN); 
gss_create(struct rpc_clnt *clnt, rpc_authflavor_t flavor){	struct gss_auth *gss_auth;	struct rpc_auth * auth;	int err = -ENOMEM; /* XXX? */	dprintk("RPC:      creating GSS authenticator for client %p\n",clnt);	if (!try_module_get(THIS_MODULE))		return ERR_PTR(err);	if (!(gss_auth = kmalloc(sizeof(*gss_auth), GFP_KERNEL)))		goto out_dec;	gss_auth->client = clnt;	err = -EINVAL;	gss_auth->mech = gss_mech_get_by_pseudoflavor(flavor);	if (!gss_auth->mech) {		printk(KERN_WARNING "%s: Pseudoflavor %d not found!",				__FUNCTION__, flavor);		goto err_free;	}	gss_auth->service = gss_pseudoflavor_to_service(gss_auth->mech, flavor);	if (gss_auth->service == 0)		goto err_put_mech;	INIT_LIST_HEAD(&gss_auth->upcalls);	spin_lock_init(&gss_auth->lock);	auth = &gss_auth->rpc_auth;	auth->au_cslack = GSS_CRED_SLACK >> 2;	auth->au_rslack = GSS_VERF_SLACK >> 2;	auth->au_ops = &authgss_ops;	auth->au_flavor = flavor;	atomic_set(&auth->au_count, 1);	err = rpcauth_init_credcache(auth, GSS_CRED_EXPIRE);	if (err)		goto err_put_mech;	gss_auth->dentry = rpc_mkpipe(clnt->cl_dentry, gss_auth->mech->gm_name,			clnt, &gss_upcall_ops, RPC_PIPE_WAIT_FOR_OPEN);	if (IS_ERR(gss_auth->dentry)) {		err = PTR_ERR(gss_auth->dentry);		goto err_put_mech;	}	return auth;err_put_mech:	gss_mech_put(gss_auth->mech);err_free:	kfree(gss_auth);out_dec:	module_put(THIS_MODULE);	return ERR_PTR(err);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/f134585a7343d71f9be7f0cf97e2145f21dd10c6/auth_gss.c/clean/net/sunrpc/auth_gss/auth_gss.c