Home | History | Annotate | Download | only in cd9660

Lines Matching defs:isomp

128 static int iso_makemp(struct iso_mnt *isomp, struct buf *bp, int *ea_len);
348 iso_makemp(struct iso_mnt *isomp, struct buf *bp, int *ea_len)
364 isomp->logical_block_size = logical_block_size;
365 isomp->volume_space_size = isonum_733 (pri->volume_space_size);
366 memcpy(isomp->root, rootp, sizeof(isomp->root));
367 isomp->root_extent = isonum_733 (rootp->extent);
368 isomp->root_size = isonum_733 (rootp->size);
369 isomp->im_joliet_level = 0;
371 isomp->im_bmask = logical_block_size - 1;
372 isomp->im_bshift = 0;
373 while ((1 << isomp->im_bshift) < isomp->logical_block_size)
374 isomp->im_bshift++;
389 struct iso_mnt *isomp = (struct iso_mnt *)0;
480 isomp = malloc(sizeof *isomp, M_ISOFSMNT, M_WAITOK);
481 memset(isomp, 0, sizeof *isomp);
482 if (iso_makemp(isomp, pribp, &ext_attr_length) == -1) {
487 isomp->volume_space_size += sess;
492 mp->mnt_data = isomp;
500 mp->mnt_fs_bshift = isomp->im_bshift;
501 isomp->im_mountp = mp;
502 isomp->im_dev = dev;
503 isomp->im_devvp = devvp;
506 isomp->im_uid = argp->uid;
508 isomp->im_gid = argp->gid;
509 isomp->im_fmask = argp->fmask & ACCESSPERMS;
510 isomp->im_dmask = argp->dmask & ACCESSPERMS;
516 if ((error = bread(isomp->im_devvp,
517 (isomp->root_extent + ext_attr_length) <<
518 (isomp->im_bshift - DEV_BSHIFT),
519 isomp->logical_block_size,
525 if ((isomp->rr_skip = cd9660_rrip_offset(rootp,isomp)) < 0) {
538 isomp->im_flags = argp->flags & (ISOFSMNT_NORRIP | ISOFSMNT_GENS |
542 if (isomp->im_flags & ISOFSMNT_GENS)
543 isomp->iso_ftype = ISO_FTYPE_9660;
544 else if (isomp->im_flags & ISOFSMNT_NORRIP) {
545 isomp->iso_ftype = ISO_FTYPE_DEFAULT;
547 isomp->im_flags |= ISOFSMNT_NOCASETRANS;
549 isomp->iso_ftype = ISO_FTYPE_RRIP;
567 if (iso_makemp(isomp, supbp, NULL) == -1) {
571 isomp->im_joliet_level = joliet_level;
590 if (isomp) {
591 free(isomp, M_ISOFSMNT);
614 struct iso_mnt *isomp;
622 isomp = VFSTOISOFS(mp);
624 if (isomp->im_devvp->v_type != VBAD)
625 spec_node_setmountedfs(isomp->im_devvp, NULL);
627 vn_lock(isomp->im_devvp, LK_EXCLUSIVE | LK_RETRY);
628 error = VOP_CLOSE(isomp->im_devvp, FREAD, NOCRED);
629 vput(isomp->im_devvp);
630 free(isomp, M_ISOFSMNT);
656 struct iso_mnt *isomp;
658 isomp = VFSTOISOFS(mp);
660 sbp->f_bsize = isomp->logical_block_size;
663 sbp->f_blocks = isomp->volume_space_size;
673 sbp->f_spare[0] = isomp->im_flags;