Lines Matching refs:fmp
73 struct devfs_mount *fmp;
115 fmp = mp->mnt_data;
116 if (fmp != NULL) {
117 sx_xlock(&fmp->dm_lock);
118 devfs_ruleset_set((devfs_rsnum)rsnum, fmp);
119 devfs_ruleset_apply(fmp);
120 sx_xunlock(&fmp->dm_lock);
126 fmp = malloc(sizeof *fmp, M_DEVFS, M_WAITOK | M_ZERO);
127 fmp->dm_idx = alloc_unr(devfs_unr);
128 sx_init(&fmp->dm_lock, "devfsmount");
129 fmp->dm_holdcnt = 1;
139 fmp->dm_mount = mp;
140 mp->mnt_data = (void *) fmp;
143 fmp->dm_rootdir = devfs_vmkdir(fmp, NULL, 0, NULL, DEVFS_ROOTINO);
147 sx_destroy(&fmp->dm_lock);
148 free_unr(devfs_unr, fmp->dm_idx);
149 free(fmp, M_DEVFS);
154 sx_xlock(&fmp->dm_lock);
155 devfs_ruleset_set((devfs_rsnum)rsnum, fmp);
156 sx_xunlock(&fmp->dm_lock);
168 devfs_unmount_final(struct devfs_mount *fmp)
170 sx_destroy(&fmp->dm_lock);
171 free(fmp, M_DEVFS);
179 struct devfs_mount *fmp;
183 fmp = VFSTODEVFS(mp);
184 KASSERT(fmp->dm_mount != NULL,
192 sx_xlock(&fmp->dm_lock);
193 devfs_cleanup(fmp);
194 devfs_rules_cleanup(fmp);
195 fmp->dm_mount = NULL;
196 hold = --fmp->dm_holdcnt;
198 idx = fmp->dm_idx;
199 sx_xunlock(&fmp->dm_lock);
202 devfs_unmount_final(fmp);