Lines Matching refs:fmp
71 struct devfs_mount *fmp;
116 fmp = mp->mnt_data;
117 if (fmp != NULL) {
118 sx_xlock(&fmp->dm_lock);
119 devfs_ruleset_set((devfs_rsnum)rsnum, fmp);
120 devfs_ruleset_apply(fmp);
121 sx_xunlock(&fmp->dm_lock);
127 fmp = malloc(sizeof *fmp, M_DEVFS, M_WAITOK | M_ZERO);
128 fmp->dm_idx = alloc_unr(devfs_unr);
129 sx_init(&fmp->dm_lock, "devfsmount");
130 fmp->dm_holdcnt = 1;
140 fmp->dm_mount = mp;
141 mp->mnt_data = (void *) fmp;
144 fmp->dm_rootdir = devfs_vmkdir(fmp, NULL, 0, NULL, DEVFS_ROOTINO);
148 sx_destroy(&fmp->dm_lock);
149 free_unr(devfs_unr, fmp->dm_idx);
150 free(fmp, M_DEVFS);
155 sx_xlock(&fmp->dm_lock);
156 devfs_ruleset_set((devfs_rsnum)rsnum, fmp);
157 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,
190 sx_xlock(&fmp->dm_lock);
191 devfs_cleanup(fmp);
192 devfs_rules_cleanup(fmp);
193 fmp->dm_mount = NULL;
194 hold = --fmp->dm_holdcnt;
196 idx = fmp->dm_idx;
197 sx_xunlock(&fmp->dm_lock);
200 devfs_unmount_final(fmp);