Lines Matching defs:hfsmp

86 #define CNODEHASH(hfsmp, inum) (&hfsmp->hfs_cnodehashtbl[(inum) & hfsmp->hfs_cnodehash])
101 static void hfs_chash_lock(struct hfsmount *hfsmp)
103 lck_mtx_lock(&hfsmp->hfs_chash_mutex);
106 static void hfs_chash_lock_spin(struct hfsmount *hfsmp)
108 lck_mtx_lock_spin(&hfsmp->hfs_chash_mutex);
112 static void hfs_chash_lock_convert (struct hfsmount *hfsmp)
114 static void hfs_chash_lock_convert (__unused struct hfsmount *hfsmp)
117 lck_mtx_convert_spin(&hfsmp->hfs_chash_mutex);
120 static void hfs_chash_unlock(struct hfsmount *hfsmp)
122 lck_mtx_unlock(&hfsmp->hfs_chash_mutex);
127 hfs_chashinit_finish(struct hfsmount *hfsmp)
129 lck_mtx_init(&hfsmp->hfs_chash_mutex, chash_lck_grp, chash_lck_attr);
131 hfsmp->hfs_cnodehashtbl = hashinit(desiredvnodes / 4, M_HFSMNT, &hfsmp->hfs_cnodehash);
136 hfs_delete_chash(struct hfsmount *hfsmp)
138 lck_mtx_destroy(&hfsmp->hfs_chash_mutex, chash_lck_grp);
140 FREE(hfsmp->hfs_cnodehashtbl, M_HFSMNT);
150 hfs_chash_getvnode(struct hfsmount *hfsmp, ino_t inum, int wantrsrc, int skiplock, int allow_deleted)
163 hfs_chash_lock_spin(hfsmp);
165 for (cp = CNODEHASH(hfsmp, inum)->lh_first; cp; cp = cp->c_hash.le_next) {
172 (void) msleep(cp, &hfsmp->hfs_chash_mutex, PDROP | PINOD,
182 hfs_chash_unlock(hfsmp);
215 hfs_chash_unlock(hfsmp);
229 hfs_chash_snoop(struct hfsmount *hfsmp, ino_t inum, int existence_only, int (*callout)(const struct cat_desc *,
240 hfs_chash_lock(hfsmp);
242 for (cp = CNODEHASH(hfsmp, inum)->lh_first; cp; cp = cp->c_hash.le_next) {
275 hfs_chash_unlock(hfsmp);
297 hfs_chash_getcnode(struct hfsmount *hfsmp, ino_t inum, struct vnode **vpp,
311 hfs_chash_lock_spin(hfsmp);
314 for (cp = CNODEHASH(hfsmp, inum)->lh_first; cp; cp = cp->c_hash.le_next) {
323 (void) msleep(cp, &hfsmp->hfs_chash_mutex, PINOD,
335 hfs_chash_unlock(hfsmp);
339 hfs_chash_unlock(hfsmp);
378 hfs_chash_lock_spin(hfsmp);
385 hfs_chash_unlock(hfsmp);
404 hfs_chash_unlock(hfsmp);
415 hfs_chash_lock_convert(hfsmp);
429 LIST_INSERT_HEAD(CNODEHASH(hfsmp, inum), ncp, c_hash);
430 hfs_chash_unlock(hfsmp);
439 hfs_chashwakeup(struct hfsmount *hfsmp, struct cnode *cp, int hflags)
441 hfs_chash_lock_spin(hfsmp);
449 hfs_chash_unlock(hfsmp);
458 hfs_chash_rehash(struct hfsmount *hfsmp, struct cnode *cp1, struct cnode *cp2)
460 hfs_chash_lock_spin(hfsmp);
464 LIST_INSERT_HEAD(CNODEHASH(hfsmp, cp1->c_fileid), cp1, c_hash);
465 LIST_INSERT_HEAD(CNODEHASH(hfsmp, cp2->c_fileid), cp2, c_hash);
467 hfs_chash_unlock(hfsmp);
476 hfs_chashremove(struct hfsmount *hfsmp, struct cnode *cp)
478 hfs_chash_lock_spin(hfsmp);
482 hfs_chash_unlock(hfsmp);
490 hfs_chash_unlock(hfsmp);
500 hfs_chash_abort(struct hfsmount *hfsmp, struct cnode *cp)
502 hfs_chash_lock_spin(hfsmp);
513 hfs_chash_unlock(hfsmp);
522 hfs_chash_mark_in_transit(struct hfsmount *hfsmp, struct cnode *cp)
524 hfs_chash_lock_spin(hfsmp);
528 hfs_chash_unlock(hfsmp);
538 hfs_chash_search_cnid(struct hfsmount *hfsmp, cnid_t cnid)
542 for (cp = CNODEHASH(hfsmp, cnid)->lh_first; cp; cp = cp->c_hash.le_next) {
568 hfs_chash_set_childlinkbit(struct hfsmount *hfsmp, cnid_t cnid)
573 hfs_chash_lock_spin(hfsmp);
575 cp = hfs_chash_search_cnid(hfsmp, cnid);
584 hfs_chash_unlock(hfsmp);