Lines Matching refs:par

777 _cache_link_parent(struct namecache *ncp, struct namecache *par,  in _cache_link_parent()  argument
784 ncp->nc_parent = par; in _cache_link_parent()
793 if (par->nc_flag & (NCF_SF_NOCACHE | NCF_SF_PNOCACHE)) in _cache_link_parent()
795 if (par->nc_flag & (NCF_UF_CACHE | NCF_UF_PCACHE)) in _cache_link_parent()
813 if (TAILQ_EMPTY(&par->nc_list)) { in _cache_link_parent()
822 TAILQ_INSERT_HEAD(&par->nc_list, ncp, nc_entry); in _cache_link_parent()
823 if (par->nc_parent) { in _cache_link_parent()
824 if (par->nc_flag & NCF_UNRESOLVED) in _cache_link_parent()
833 if (par->nc_vp) in _cache_link_parent()
834 vhold(par->nc_vp); in _cache_link_parent()
837 TAILQ_INSERT_HEAD(&par->nc_list, ncp, nc_entry); in _cache_link_parent()
839 _cache_hold(par); /* add nc_parent ref */ in _cache_link_parent()
863 _cache_unlink_parent(struct namecache *par, struct namecache *ncp, in _cache_unlink_parent() argument
869 KKASSERT(ncp->nc_parent == par); in _cache_unlink_parent()
879 TAILQ_REMOVE(&par->nc_list, ncp, nc_entry); in _cache_unlink_parent()
895 if (TAILQ_EMPTY(&par->nc_list)) { in _cache_unlink_parent()
901 if (par->nc_parent) { in _cache_unlink_parent()
902 if (par->nc_flag & NCF_UNRESOLVED) in _cache_unlink_parent()
906 if (par->nc_vp) in _cache_unlink_parent()
907 dropvp = par->nc_vp; in _cache_unlink_parent()
913 _cache_drop(par); /* drop ncp's nc_parent ref from (par) */ in _cache_unlink_parent()
2089 struct namecache *par; in cache_rename() local
2107 par = fncp->nc_parent; in cache_rename()
2108 _cache_hold(par); in cache_rename()
2109 _cache_lock(par); in cache_rename()
2112 _cache_unlink_parent(par, fncp, nchpp); /* eats nchpp */ in cache_rename()
2113 _cache_put(par); in cache_rename()
2115 par = NULL; in cache_rename()
2124 par = tncp->nc_parent; in cache_rename()
2125 KKASSERT(par->nc_lock.lk_lockholder == curthread); in cache_rename()
2131 hash = fnv_32_buf(&par, sizeof(par), hash); in cache_rename()
2135 _cache_link_parent(fncp, par, nchpp); in cache_rename()
2418 struct namecache *par; in cache_dvpref() local
2422 if ((par = ncp->nc_parent) != NULL) { in cache_dvpref()
2423 _cache_hold(par); in cache_dvpref()
2424 _cache_lock(par); in cache_dvpref()
2425 if ((par->nc_flag & NCF_UNRESOLVED) == 0) { in cache_dvpref()
2426 if ((dvp = par->nc_vp) != NULL) in cache_dvpref()
2429 _cache_unlock(par); in cache_dvpref()
2440 _cache_drop(par); in cache_dvpref()
2886 struct namecache *par; in cache_zap() local
2921 if ((par = ncp->nc_parent) != NULL) { in cache_zap()
2923 if (_cache_lock_nonblock(par)) { in cache_zap()
2933 _cache_hold(par); in cache_zap()
2935 _cache_hold(par); in cache_zap()
2936 _cache_lock(par); in cache_zap()
2950 if (par) in cache_zap()
2960 if (par) { in cache_zap()
2962 _cache_put(par); in cache_zap()
2977 if (par) { in cache_zap()
2979 _cache_unlink_parent(par, ncp, nchpp); /* eats nhcpp */ in cache_zap()
3004 if (par) { in cache_zap()
3006 if (par->nc_parent) /* par->par */ in cache_zap()
3008 par->nc_flag &= ~NCF_DEFEREDZAP; in cache_zap()
3009 if ((par->nc_flag & NCF_UNRESOLVED) && in cache_zap()
3010 par->nc_refs == refcmp && in cache_zap()
3011 TAILQ_EMPTY(&par->nc_list)) in cache_zap()
3013 ncp = par; in cache_zap()
3016 _cache_unlock(par); in cache_zap()
3017 _cache_drop(par); in cache_zap()
4276 struct namecache *par; in cache_resolve() local
4381 par = ncp->nc_parent; in cache_resolve()
4382 _cache_hold(par); in cache_resolve()
4383 _cache_lock(par); in cache_resolve()
4384 while ((par_tmp = par->nc_parent) != NULL && in cache_resolve()
4388 _cache_put(par); in cache_resolve()
4389 par = par_tmp; in cache_resolve()
4391 if (par->nc_parent == NULL) { in cache_resolve()
4393 par->nc_nlen, par->nc_nlen, par->nc_name); in cache_resolve()
4394 _cache_put(par); in cache_resolve()
4405 _cache_get(par); /* additional hold/lock */ in cache_resolve()
4406 _cache_put(par); /* from earlier hold/lock */ in cache_resolve()
4407 if (par == nch->mount->mnt_ncmountpt.ncp) { in cache_resolve()
4409 } else if ((dvp = cache_dvpref(par)) == NULL) { in cache_resolve()
4411 par->nc_nlen, par->nc_nlen, par->nc_name); in cache_resolve()
4412 _cache_put(par); in cache_resolve()
4415 if (par->nc_flag & NCF_UNRESOLVED) { in cache_resolve()
4417 nctmp.ncp = par; in cache_resolve()
4418 par->nc_error = VOP_NRESOLVE(&nctmp, dvp, cred); in cache_resolve()
4422 if ((error = par->nc_error) != 0) { in cache_resolve()
4423 if (par->nc_error != EAGAIN) { in cache_resolve()
4425 par->nc_nlen, par->nc_nlen, par->nc_name, in cache_resolve()
4426 par->nc_error); in cache_resolve()
4427 _cache_put(par); in cache_resolve()
4432 par, par->nc_nlen, par->nc_nlen, par->nc_name); in cache_resolve()
4434 _cache_put(par); in cache_resolve()
4538 struct namecache *par; in cache_resolve_dvp() local
4600 par = ncp->nc_parent; in cache_resolve_dvp()
4601 _cache_hold(par); in cache_resolve_dvp()
4602 _cache_lock(par); in cache_resolve_dvp()
4603 while ((par_tmp = par->nc_parent) != NULL && in cache_resolve_dvp()
4607 _cache_put(par); in cache_resolve_dvp()
4608 par = par_tmp; in cache_resolve_dvp()
4610 if (par->nc_parent == NULL) { in cache_resolve_dvp()
4612 par->nc_nlen, par->nc_nlen, par->nc_name); in cache_resolve_dvp()
4613 _cache_put(par); in cache_resolve_dvp()
4624 _cache_get(par); /* additional hold/lock */ in cache_resolve_dvp()
4625 _cache_put(par); /* from earlier hold/lock */ in cache_resolve_dvp()
4626 if (par == nch->mount->mnt_ncmountpt.ncp) { in cache_resolve_dvp()
4628 } else if ((dvp = cache_dvpref(par)) == NULL) { in cache_resolve_dvp()
4630 par->nc_nlen, par->nc_nlen, par->nc_name); in cache_resolve_dvp()
4631 _cache_put(par); in cache_resolve_dvp()
4634 if (par->nc_flag & NCF_UNRESOLVED) { in cache_resolve_dvp()
4636 nctmp.ncp = par; in cache_resolve_dvp()
4637 par->nc_error = VOP_NRESOLVE(&nctmp, dvp, cred); in cache_resolve_dvp()
4641 if ((error = par->nc_error) != 0) { in cache_resolve_dvp()
4642 if (par->nc_error != EAGAIN) { in cache_resolve_dvp()
4644 par->nc_nlen, par->nc_nlen, par->nc_name, in cache_resolve_dvp()
4645 par->nc_error); in cache_resolve_dvp()
4646 _cache_put(par); in cache_resolve_dvp()
4650 par, par->nc_nlen, par->nc_nlen, par->nc_name); in cache_resolve_dvp()
4652 _cache_put(par); in cache_resolve_dvp()