Lines Matching refs:rsci

338 static void rsc_free(struct rsc *rsci)  in rsc_free()  argument
340 kfree(rsci->handle.data); in rsc_free()
341 if (rsci->mechctx) in rsc_free()
342 gss_delete_sec_context(&rsci->mechctx); in rsc_free()
343 free_svc_cred(&rsci->cred); in rsc_free()
348 struct rsc *rsci = container_of(ref, struct rsc, h.ref); in rsc_put() local
350 rsc_free(rsci); in rsc_put()
351 kfree(rsci); in rsc_put()
355 rsc_hash(struct rsc *rsci) in rsc_hash() argument
357 return hash_mem(rsci->handle.data, rsci->handle.len, RSC_HASHBITS); in rsc_hash()
400 struct rsc *rsci = kmalloc(sizeof(*rsci), GFP_KERNEL); in rsc_alloc() local
401 if (rsci) in rsc_alloc()
402 return &rsci->h; in rsc_alloc()
414 struct rsc rsci, *rscp = NULL; in rsc_parse() local
419 memset(&rsci, 0, sizeof(rsci)); in rsc_parse()
424 if (dup_to_netobj(&rsci.handle, buf, len)) in rsc_parse()
427 rsci.h.flags = 0; in rsc_parse()
434 rscp = rsc_lookup(cd, &rsci); in rsc_parse()
443 set_bit(CACHE_NEGATIVE, &rsci.h.flags); in rsc_parse()
456 rsci.cred.cr_uid = make_kuid(&init_user_ns, id); in rsc_parse()
461 rsci.cred.cr_gid = make_kgid(&init_user_ns, id); in rsc_parse()
469 rsci.cred.cr_group_info = groups_alloc(N); in rsc_parse()
470 if (rsci.cred.cr_group_info == NULL) in rsc_parse()
482 rsci.cred.cr_group_info->gid[i] = kgid; in rsc_parse()
484 groups_sort(rsci.cred.cr_group_info); in rsc_parse()
490 gm = rsci.cred.cr_gss_mech = gss_mech_get_by_name(buf); in rsc_parse()
500 status = gss_import_sec_context(buf, len, gm, &rsci.mechctx, in rsc_parse()
508 rsci.cred.cr_principal = kstrdup(buf, GFP_KERNEL); in rsc_parse()
509 if (!rsci.cred.cr_principal) { in rsc_parse()
516 rsci.h.expiry_time = expiry; in rsc_parse()
517 rscp = rsc_update(cd, &rsci, rscp); in rsc_parse()
520 rsc_free(&rsci); in rsc_parse()
569 struct rsc rsci; in gss_svc_searchbyctx() local
572 memset(&rsci, 0, sizeof(rsci)); in gss_svc_searchbyctx()
573 if (dup_to_netobj(&rsci.handle, handle->data, handle->len)) in gss_svc_searchbyctx()
575 found = rsc_lookup(cd, &rsci); in gss_svc_searchbyctx()
576 rsc_free(&rsci); in gss_svc_searchbyctx()
586 gss_check_seq_num(struct rsc *rsci, int seq_num) in gss_check_seq_num() argument
588 struct gss_svc_seq_data *sd = &rsci->seqdata; in gss_check_seq_num()
660 gss_verify_header(struct svc_rqst *rqstp, struct rsc *rsci, in gss_verify_header() argument
663 struct gss_ctx *ctx_id = rsci->mechctx; in gss_verify_header()
697 if (!gss_check_seq_num(rsci, gc->gc_seq)) { in gss_verify_header()
960 struct rsc *rsci; member
967 struct rsc *rsci = svcdata->rsci; in svcauth_gss_set_client() local
980 rqstp->rq_gssclient = find_gss_auth_domain(rsci->mechctx, gc->gc_svc); in svcauth_gss_set_client()
993 struct rsc *rsci; in gss_write_init_verf() local
998 rsci = gss_svc_searchbyctx(cd, out_handle); in gss_write_init_verf()
999 if (rsci == NULL) { in gss_write_init_verf()
1003 rc = gss_write_verf(rqstp, rsci->mechctx, GSS_SEQ_WIN); in gss_write_init_verf()
1004 cache_put(&rsci->h, cd); in gss_write_init_verf()
1162 struct rsc rsci, *rscp = NULL; in gss_proxy_save_rsc() local
1169 memset(&rsci, 0, sizeof(rsci)); in gss_proxy_save_rsc()
1180 if (dup_to_netobj(&rsci.handle, (char *)handle, sizeof(uint64_t))) in gss_proxy_save_rsc()
1182 rscp = rsc_lookup(cd, &rsci); in gss_proxy_save_rsc()
1195 rsci.cred = ud->creds; in gss_proxy_save_rsc()
1203 rsci.cred.cr_gss_mech = gm; in gss_proxy_save_rsc()
1209 gm, &rsci.mechctx, in gss_proxy_save_rsc()
1215 rsci.h.expiry_time = expiry; in gss_proxy_save_rsc()
1216 rscp = rsc_update(cd, &rsci, rscp); in gss_proxy_save_rsc()
1219 rsc_free(&rsci); in gss_proxy_save_rsc()
1423 struct rsc *rsci = NULL; in svcauth_gss_accept() local
1439 svcdata->rsci = NULL; in svcauth_gss_accept()
1481 rsci = gss_svc_searchbyctx(sn->rsc_cache, &gc->gc_ctx); in svcauth_gss_accept()
1482 if (!rsci) in svcauth_gss_accept()
1484 switch (gss_verify_header(rqstp, rsci, rpcstart, gc, authp)) { in svcauth_gss_accept()
1501 if (gss_write_verf(rqstp, rsci->mechctx, gc->gc_seq)) in svcauth_gss_accept()
1504 sunrpc_cache_unhash(sn->rsc_cache, &rsci->h); in svcauth_gss_accept()
1512 if (gss_write_verf(rqstp, rsci->mechctx, gc->gc_seq)) in svcauth_gss_accept()
1514 rqstp->rq_cred = rsci->cred; in svcauth_gss_accept()
1515 get_group_info(rsci->cred.cr_group_info); in svcauth_gss_accept()
1525 gc->gc_seq, rsci->mechctx)) in svcauth_gss_accept()
1534 gc->gc_seq, rsci->mechctx)) in svcauth_gss_accept()
1541 svcdata->rsci = rsci; in svcauth_gss_accept()
1542 cache_get(&rsci->h); in svcauth_gss_accept()
1544 rsci->mechctx->mech_type, in svcauth_gss_accept()
1564 if (rsci) in svcauth_gss_accept()
1565 cache_put(&rsci->h, sn->rsc_cache); in svcauth_gss_accept()
1630 if (gss_get_mic(gsd->rsci->mechctx, &integ_buf, &mic)) in svcauth_gss_wrap_resp_integ()
1699 if (gss_wrap(gsd->rsci->mechctx, offset, resbuf, inpages)) in svcauth_gss_wrap_resp_priv()
1759 if (gsd->rsci) in svcauth_gss_release()
1760 cache_put(&gsd->rsci->h, sn->rsc_cache); in svcauth_gss_release()
1761 gsd->rsci = NULL; in svcauth_gss_release()