Lines Matching defs:lfs

316 	struct lfsnode *lfs;
326 if ((lfs = lfsfind(vfsp, li)) == NULL) {
328 lfs = kmem_zalloc(sizeof (*lfs), KM_SLEEP);
331 kmem_free(lfs, sizeof (*lfs));
332 lfs = tlfs;
335 lfs->lfs_realvfs = vfsp;
342 VFS_INIT(&lfs->lfs_vfs, lo_vfsops, (caddr_t)li);
343 lfs->lfs_vfs.vfs_fstype = li->li_mountvfs->vfs_fstype;
344 lfs->lfs_vfs.vfs_flag =
347 lfs->lfs_vfs.vfs_bsize = vfsp->vfs_bsize;
348 lfs->lfs_vfs.vfs_dev = vfsp->vfs_dev;
349 lfs->lfs_vfs.vfs_fsid = vfsp->vfs_fsid;
352 lfs->lfs_vfs.vfs_mntpt = vfs_getmntpoint(vfsp);
356 (void) VFS_ROOT(vfsp, &lfs->lfs_realrootvp);
364 VFS_HOLD(&lfs->lfs_vfs);
365 lfs->lfs_next = li->li_lfs;
366 li->li_lfs = lfs;
367 vfs_propagate_features(vfsp, &lfs->lfs_vfs);
371 VFS_HOLD(&lfs->lfs_vfs);
373 return (&lfs->lfs_vfs);
377 * Free lfs node since no longer in use
380 freelfsnode(struct lfsnode *lfs, struct loinfo *li)
388 if (this == lfs) {
389 ASSERT(lfs->lfs_vfs.vfs_count == 1);
391 li->li_lfs = lfs->lfs_next;
393 prev->lfs_next = lfs->lfs_next;
394 if (lfs->lfs_realrootvp != NULL) {
395 VN_RELE(lfs->lfs_realrootvp);
397 if (lfs->lfs_vfs.vfs_mntpt != NULL)
398 refstr_rele(lfs->lfs_vfs.vfs_mntpt);
399 if (lfs->lfs_vfs.vfs_implp != NULL) {
400 ASSERT(lfs->lfs_vfs.vfs_femhead == NULL);
401 ASSERT(lfs->lfs_vfs.vfs_vskap == NULL);
402 ASSERT(lfs->lfs_vfs.vfs_fstypevsp == NULL);
403 kmem_free(lfs->lfs_vfs.vfs_implp,
406 sema_destroy(&lfs->lfs_vfs.vfs_reflock);
407 kmem_free(lfs, sizeof (struct lfsnode));
417 * Find lfs given real vfs and mount instance(li)
422 struct lfsnode *lfs;
441 for (lfs = li->li_lfs; lfs != NULL; lfs = lfs->lfs_next) {
442 if (lfs->lfs_realvfs == vfsp) {
445 realvp = lfs->lfs_realrootvp;
450 return (lfs);
463 struct lfsnode *lfs;
472 for (lfs = li->li_lfs; lfs != NULL; lfs = lfs->lfs_next) {
473 if (vfsp == &lfs->lfs_vfs) {
475 *realrootvpp = lfs->lfs_realrootvp;
477 return (lfs->lfs_realvfs);
627 lfs_rele(struct lfsnode *lfs, struct loinfo *li)
629 vfs_t *vfsp = &lfs->lfs_vfs;
634 freelfsnode(lfs, li);
645 struct lfsnode *lfs, *nextlfs;
679 * Check for unused lfs
681 lfs = li->li_lfs;
682 while (lfs != NULL) {
683 nextlfs = lfs->lfs_next;
684 if (vfsp == &lfs->lfs_vfs) {
685 lfs_rele(lfs, li);
688 if (lfs->lfs_vfs.vfs_count == 1) {
692 freelfsnode(lfs, li);
694 lfs = nextlfs;