Symbol: gss_auth
net/sunrpc/auth_gss/auth_gss.c
1021
static struct gss_auth *
net/sunrpc/auth_gss/auth_gss.c
1025
struct gss_auth *gss_auth;
net/sunrpc/auth_gss/auth_gss.c
1032
if (!(gss_auth = kmalloc_obj(*gss_auth)))
net/sunrpc/auth_gss/auth_gss.c
1034
INIT_HLIST_NODE(&gss_auth->hash);
net/sunrpc/auth_gss/auth_gss.c
1035
gss_auth->target_name = NULL;
net/sunrpc/auth_gss/auth_gss.c
1037
gss_auth->target_name = kstrdup(args->target_name, GFP_KERNEL);
net/sunrpc/auth_gss/auth_gss.c
1038
if (gss_auth->target_name == NULL)
net/sunrpc/auth_gss/auth_gss.c
1041
gss_auth->client = clnt;
net/sunrpc/auth_gss/auth_gss.c
1042
gss_auth->net = get_net_track(rpc_net_ns(clnt), &gss_auth->ns_tracker,
net/sunrpc/auth_gss/auth_gss.c
1045
gss_auth->mech = gss_mech_get_by_pseudoflavor(flavor);
net/sunrpc/auth_gss/auth_gss.c
1046
if (!gss_auth->mech)
net/sunrpc/auth_gss/auth_gss.c
1048
gss_auth->service = gss_pseudoflavor_to_service(gss_auth->mech, flavor);
net/sunrpc/auth_gss/auth_gss.c
1049
if (gss_auth->service == 0)
net/sunrpc/auth_gss/auth_gss.c
1051
if (!gssd_running(gss_auth->net))
net/sunrpc/auth_gss/auth_gss.c
1053
auth = &gss_auth->rpc_auth;
net/sunrpc/auth_gss/auth_gss.c
1062
if (gss_pseudoflavor_to_datatouch(gss_auth->mech, flavor))
net/sunrpc/auth_gss/auth_gss.c
1065
kref_init(&gss_auth->kref);
net/sunrpc/auth_gss/auth_gss.c
1081
gss_auth->gss_pipe[1] = gss_pipe;
net/sunrpc/auth_gss/auth_gss.c
1083
gss_pipe = gss_pipe_get(clnt, gss_auth->mech->gm_name,
net/sunrpc/auth_gss/auth_gss.c
1089
gss_auth->gss_pipe[0] = gss_pipe;
net/sunrpc/auth_gss/auth_gss.c
109
static void gss_put_auth(struct gss_auth *gss_auth);
net/sunrpc/auth_gss/auth_gss.c
1091
return gss_auth;
net/sunrpc/auth_gss/auth_gss.c
1093
gss_pipe_free(gss_auth->gss_pipe[1]);
net/sunrpc/auth_gss/auth_gss.c
1097
gss_mech_put(gss_auth->mech);
net/sunrpc/auth_gss/auth_gss.c
1099
put_net_track(gss_auth->net, &gss_auth->ns_tracker);
net/sunrpc/auth_gss/auth_gss.c
1101
kfree(gss_auth->target_name);
net/sunrpc/auth_gss/auth_gss.c
1102
kfree(gss_auth);
net/sunrpc/auth_gss/auth_gss.c
1110
gss_free(struct gss_auth *gss_auth)
net/sunrpc/auth_gss/auth_gss.c
1112
gss_pipe_free(gss_auth->gss_pipe[0]);
net/sunrpc/auth_gss/auth_gss.c
1113
gss_pipe_free(gss_auth->gss_pipe[1]);
net/sunrpc/auth_gss/auth_gss.c
1114
gss_mech_put(gss_auth->mech);
net/sunrpc/auth_gss/auth_gss.c
1115
put_net_track(gss_auth->net, &gss_auth->ns_tracker);
net/sunrpc/auth_gss/auth_gss.c
1116
kfree(gss_auth->target_name);
net/sunrpc/auth_gss/auth_gss.c
1118
kfree(gss_auth);
net/sunrpc/auth_gss/auth_gss.c
1125
struct gss_auth *gss_auth = container_of(kref, struct gss_auth, kref);
net/sunrpc/auth_gss/auth_gss.c
1127
gss_free(gss_auth);
net/sunrpc/auth_gss/auth_gss.c
1131
gss_put_auth(struct gss_auth *gss_auth)
net/sunrpc/auth_gss/auth_gss.c
1133
kref_put(&gss_auth->kref, gss_free_callback);
net/sunrpc/auth_gss/auth_gss.c
1139
struct gss_auth *gss_auth = container_of(auth,
net/sunrpc/auth_gss/auth_gss.c
1140
struct gss_auth, rpc_auth);
net/sunrpc/auth_gss/auth_gss.c
1142
if (hash_hashed(&gss_auth->hash)) {
net/sunrpc/auth_gss/auth_gss.c
1144
hash_del(&gss_auth->hash);
net/sunrpc/auth_gss/auth_gss.c
1148
gss_pipe_free(gss_auth->gss_pipe[0]);
net/sunrpc/auth_gss/auth_gss.c
1149
gss_auth->gss_pipe[0] = NULL;
net/sunrpc/auth_gss/auth_gss.c
1150
gss_pipe_free(gss_auth->gss_pipe[1]);
net/sunrpc/auth_gss/auth_gss.c
1151
gss_auth->gss_pipe[1] = NULL;
net/sunrpc/auth_gss/auth_gss.c
1154
gss_put_auth(gss_auth);
net/sunrpc/auth_gss/auth_gss.c
1166
static struct gss_auth *
net/sunrpc/auth_gss/auth_gss.c
1169
struct gss_auth *new)
net/sunrpc/auth_gss/auth_gss.c
1171
struct gss_auth *gss_auth;
net/sunrpc/auth_gss/auth_gss.c
1176
gss_auth,
net/sunrpc/auth_gss/auth_gss.c
1179
if (gss_auth->client != clnt)
net/sunrpc/auth_gss/auth_gss.c
1181
if (gss_auth->rpc_auth.au_flavor != args->pseudoflavor)
net/sunrpc/auth_gss/auth_gss.c
1183
if (gss_auth->target_name != args->target_name) {
net/sunrpc/auth_gss/auth_gss.c
1184
if (gss_auth->target_name == NULL)
net/sunrpc/auth_gss/auth_gss.c
1188
if (strcmp(gss_auth->target_name, args->target_name))
net/sunrpc/auth_gss/auth_gss.c
1191
if (!refcount_inc_not_zero(&gss_auth->rpc_auth.au_count))
net/sunrpc/auth_gss/auth_gss.c
1197
gss_auth = new;
net/sunrpc/auth_gss/auth_gss.c
1200
return gss_auth;
net/sunrpc/auth_gss/auth_gss.c
1203
static struct gss_auth *
net/sunrpc/auth_gss/auth_gss.c
1207
struct gss_auth *gss_auth;
net/sunrpc/auth_gss/auth_gss.c
1208
struct gss_auth *new;
net/sunrpc/auth_gss/auth_gss.c
1210
gss_auth = gss_auth_find_or_add_hashed(args, clnt, NULL);
net/sunrpc/auth_gss/auth_gss.c
1211
if (gss_auth != NULL)
net/sunrpc/auth_gss/auth_gss.c
1216
gss_auth = gss_auth_find_or_add_hashed(args, clnt, new);
net/sunrpc/auth_gss/auth_gss.c
1217
if (gss_auth != new)
net/sunrpc/auth_gss/auth_gss.c
1220
return gss_auth;
net/sunrpc/auth_gss/auth_gss.c
1226
struct gss_auth *gss_auth;
net/sunrpc/auth_gss/auth_gss.c
1237
gss_auth = gss_create_hashed(args, clnt);
net/sunrpc/auth_gss/auth_gss.c
1238
if (IS_ERR(gss_auth))
net/sunrpc/auth_gss/auth_gss.c
1239
return ERR_CAST(gss_auth);
net/sunrpc/auth_gss/auth_gss.c
1240
return &gss_auth->rpc_auth;
net/sunrpc/auth_gss/auth_gss.c
1244
gss_dup_cred(struct gss_auth *gss_auth, struct gss_cred *gss_cred)
net/sunrpc/auth_gss/auth_gss.c
1258
&gss_auth->rpc_auth,
net/sunrpc/auth_gss/auth_gss.c
1263
kref_get(&gss_auth->kref);
net/sunrpc/auth_gss/auth_gss.c
1280
struct gss_auth *gss_auth = container_of(cred->cr_auth, struct gss_auth, rpc_auth);
net/sunrpc/auth_gss/auth_gss.c
1285
new = gss_dup_cred(gss_auth, gss_cred);
net/sunrpc/auth_gss/auth_gss.c
1290
task = rpc_call_null(gss_auth->client, &new->gc_base,
net/sunrpc/auth_gss/auth_gss.c
1341
struct gss_auth *gss_auth = container_of(cred->cr_auth, struct gss_auth, rpc_auth);
net/sunrpc/auth_gss/auth_gss.c
1349
gss_put_auth(gss_auth);
net/sunrpc/auth_gss/auth_gss.c
1379
struct gss_auth *gss_auth = container_of(auth, struct gss_auth, rpc_auth);
net/sunrpc/auth_gss/auth_gss.c
1392
cred->gc_service = gss_auth->service;
net/sunrpc/auth_gss/auth_gss.c
1394
kref_get(&gss_auth->kref);
net/sunrpc/auth_gss/auth_gss.c
1404
struct gss_auth *gss_auth = container_of(auth, struct gss_auth, rpc_auth);
net/sunrpc/auth_gss/auth_gss.c
1409
err = gss_create_upcall(gss_auth, gss_cred);
net/sunrpc/auth_gss/auth_gss.c
267
struct gss_auth *auth;
net/sunrpc/auth_gss/auth_gss.c
317
__gss_find_upcall(struct rpc_pipe *pipe, kuid_t uid, const struct gss_auth *auth)
net/sunrpc/auth_gss/auth_gss.c
525
gss_alloc_msg(struct gss_auth *gss_auth,
net/sunrpc/auth_gss/auth_gss.c
535
vers = get_pipe_version(gss_auth->net);
net/sunrpc/auth_gss/auth_gss.c
539
gss_msg->pipe = gss_auth->gss_pipe[vers]->pipe;
net/sunrpc/auth_gss/auth_gss.c
545
gss_msg->auth = gss_auth;
net/sunrpc/auth_gss/auth_gss.c
546
kref_get(&gss_auth->kref);
net/sunrpc/auth_gss/auth_gss.c
556
kref_put(&gss_auth->kref, gss_free_callback);
net/sunrpc/auth_gss/auth_gss.c
557
put_pipe_version(gss_auth->net);
net/sunrpc/auth_gss/auth_gss.c
565
gss_setup_upcall(struct gss_auth *gss_auth, struct rpc_cred *cred)
net/sunrpc/auth_gss/auth_gss.c
572
gss_new = gss_alloc_msg(gss_auth, uid, gss_cred->gc_principal);
net/sunrpc/auth_gss/auth_gss.c
600
struct gss_auth *gss_auth = container_of(cred->cr_auth,
net/sunrpc/auth_gss/auth_gss.c
601
struct gss_auth, rpc_auth);
net/sunrpc/auth_gss/auth_gss.c
608
gss_msg = gss_setup_upcall(gss_auth, cred);
net/sunrpc/auth_gss/auth_gss.c
644
gss_create_upcall(struct gss_auth *gss_auth, struct gss_cred *gss_cred)
net/sunrpc/auth_gss/auth_gss.c
646
struct net *net = gss_auth->net;
net/sunrpc/auth_gss/auth_gss.c
662
gss_msg = gss_setup_upcall(gss_auth, cred);