Lines Matching refs:fnp
39 FNAME *fnp, *reuse_fnp; local
48 fnp = namep = reuse_fnp = NULL;
71 for (maxid = 0, fnp = SH_TAILQ_FIRST(&dblp->lp->fq, __fname);
72 fnp != NULL; fnp = SH_TAILQ_NEXT(fnp, q, __fname)) {
73 if (fnp->ref == 0) { /* Entry is not in use. */
75 reuse_fnp = fnp;
78 if (!memcmp(dbp->fileid, fnp->ufid, DB_FILE_ID_LEN)) {
79 ++fnp->ref;
82 if (maxid <= fnp->id)
83 maxid = fnp->id + 1;
89 fnp = reuse_fnp;
90 else if ((ret = __db_shalloc(dblp->addr, sizeof(FNAME), 0, &fnp)) != 0)
93 fnp->id = maxid;
95 fnp->ref = 1;
96 fnp->s_type = type;
97 memcpy(fnp->ufid, dbp->fileid, DB_FILE_ID_LEN);
102 fnp->name_off = R_OFFSET(dblp, namep);
107 SH_TAILQ_INSERT_HEAD(&dblp->lp->fq, fnp, q, __fname);
118 0, LOG_OPEN, &r_name, &fid_dbt, fnp->id, type)) != 0)
120 if ((ret = __log_add_logid(dblp, dbp, name, fnp->id)) != 0)
130 SH_TAILQ_REMOVE(&dblp->lp->fq, fnp, q, __fname);
133 if (fnp != NULL)
134 __db_shalloc_free(dblp->addr, fnp);
138 *idp = fnp->id;
158 FNAME *fnp; local
167 for (fnp = SH_TAILQ_FIRST(&dblp->lp->fq, __fname);
168 fnp != NULL; fnp = SH_TAILQ_NEXT(fnp, q, __fname))
169 if (fid == fnp->id)
171 if (fnp == NULL) {
180 r_name.data = R_ADDR(dblp, fnp->name_off);
183 fid_dbt.data = fnp->ufid;
186 0, LOG_CLOSE, &r_name, &fid_dbt, fid, fnp->s_type)) != 0)
194 --fnp->ref;
195 if (fnp->ref == 0)
196 __db_shalloc_free(dblp->addr, R_ADDR(dblp, fnp->name_off));