Lines Matching refs:co
486 struct nfs4_clnt_odstate *co; in alloc_clnt_odstate() local
488 co = kmem_cache_zalloc(odstate_slab, GFP_KERNEL); in alloc_clnt_odstate()
489 if (co) { in alloc_clnt_odstate()
490 co->co_client = clp; in alloc_clnt_odstate()
491 atomic_set(&co->co_odcount, 1); in alloc_clnt_odstate()
493 return co; in alloc_clnt_odstate()
497 hash_clnt_odstate_locked(struct nfs4_clnt_odstate *co) in hash_clnt_odstate_locked() argument
499 struct nfs4_file *fp = co->co_file; in hash_clnt_odstate_locked()
502 list_add(&co->co_perfile, &fp->fi_clnt_odstate); in hash_clnt_odstate_locked()
506 get_clnt_odstate(struct nfs4_clnt_odstate *co) in get_clnt_odstate() argument
508 if (co) in get_clnt_odstate()
509 atomic_inc(&co->co_odcount); in get_clnt_odstate()
513 put_clnt_odstate(struct nfs4_clnt_odstate *co) in put_clnt_odstate() argument
517 if (!co) in put_clnt_odstate()
520 fp = co->co_file; in put_clnt_odstate()
521 if (atomic_dec_and_lock(&co->co_odcount, &fp->fi_lock)) { in put_clnt_odstate()
522 list_del(&co->co_perfile); in put_clnt_odstate()
525 nfsd4_return_all_file_layouts(co->co_client, fp); in put_clnt_odstate()
526 kmem_cache_free(odstate_slab, co); in put_clnt_odstate()
533 struct nfs4_clnt_odstate *co; in find_or_hash_clnt_odstate() local
542 list_for_each_entry(co, &fp->fi_clnt_odstate, co_perfile) { in find_or_hash_clnt_odstate()
543 if (co->co_client == cl) { in find_or_hash_clnt_odstate()
544 get_clnt_odstate(co); in find_or_hash_clnt_odstate()
548 co = new; in find_or_hash_clnt_odstate()
549 co->co_file = fp; in find_or_hash_clnt_odstate()
553 return co; in find_or_hash_clnt_odstate()