Lines Matching refs:ump

240 	struct udf_mount *ump;
246 ump = VFSTOUDF(mp);
247 if (ump) {
250 MPFREE(ump->anchors[i], M_UDFVOLD);
251 MPFREE(ump->primary_vol, M_UDFVOLD);
252 MPFREE(ump->logical_vol, M_UDFVOLD);
253 MPFREE(ump->unallocated, M_UDFVOLD);
254 MPFREE(ump->implementation, M_UDFVOLD);
255 MPFREE(ump->logvol_integrity, M_UDFVOLD);
257 MPFREE(ump->partitions[i], M_UDFVOLD);
258 MPFREE(ump->part_unalloc_dscr[i], M_UDFVOLD);
259 MPFREE(ump->part_freed_dscr[i], M_UDFVOLD);
261 MPFREE(ump->metadata_unalloc_dscr, M_UDFVOLD);
263 MPFREE(ump->fileset_desc, M_UDFVOLD);
264 MPFREE(ump->sparing_table, M_UDFVOLD);
266 MPFREE(ump->la_node_ad_cpy, M_UDFMNT);
267 MPFREE(ump->la_pmapping, M_TEMP);
268 MPFREE(ump->la_lmapping, M_TEMP);
270 mutex_destroy(&ump->ihash_lock);
271 mutex_destroy(&ump->get_node_lock);
272 mutex_destroy(&ump->logvol_mutex);
273 mutex_destroy(&ump->allocate_mutex);
274 cv_destroy(&ump->dirtynodes_cv);
276 MPFREE(ump->vat_table, M_UDFVOLD);
278 free(ump, M_UDFMNT);
289 struct udf_mount *ump = VFSTOUDF(mp);
292 /* if we haven't even got an ump, dont bother */
293 if (!ump)
297 if (ump->vat_node)
298 vrele(ump->vat_node->vnode);
301 if (ump->metadata_node)
302 vrele(ump->metadata_node->vnode);
303 if (ump->metadatamirror_node)
304 vrele(ump->metadatamirror_node->vnode);
305 if (ump->metadatabitmap_node)
306 vrele(ump->metadatabitmap_node->vnode);
309 if ((error = vflush(ump->vfs_mountp, NULLVP, 0)) != 0)
320 struct udf_mount *ump;
333 ump = VFSTOUDF(mp);
334 if (ump == NULL)
336 *args = ump->mount_args;
471 struct udf_mount *ump;
476 ump = VFSTOUDF(mp);
477 if (!ump)
478 panic("UDF unmount: empty ump\n");
504 if ((error = vflush(ump->vfs_mountp, NULLVP, flags | SKIPSYSTEM)) != 0)
510 if ((error = udf_close_logvol(ump, mntflags)) != 0)
523 udf_discstrat_finish(ump);
526 (void) udf_synchronise_caches(ump);
537 vn_lock(ump->devvp, LK_EXCLUSIVE | LK_RETRY);
538 error = VOP_CLOSE(ump->devvp, closeflags, NOCRED);
545 ump->devvp->v_specmountpoint = NULL;
546 vput(ump->devvp);
548 /* free our ump */
551 /* free ump struct references */
569 struct udf_mount *ump;
588 ump = malloc(sizeof(struct udf_mount), M_UDFMNT, M_WAITOK | M_ZERO);
591 mutex_init(&ump->logvol_mutex, MUTEX_DEFAULT, IPL_NONE);
592 mutex_init(&ump->ihash_lock, MUTEX_DEFAULT, IPL_NONE);
593 mutex_init(&ump->get_node_lock, MUTEX_DEFAULT, IPL_NONE);
594 mutex_init(&ump->allocate_mutex, MUTEX_DEFAULT, IPL_NONE);
595 cv_init(&ump->dirtynodes_cv, "udfsync2");
598 udf_init_nodes_tree(ump);
601 mp->mnt_data = ump;
602 ump->vfs_mountp = mp;
605 ump->mount_args = *args;
606 ump->devvp = devvp;
607 if ((error = udf_update_discinfo(ump))) {
613 sector_size = ump->discinfo.sector_size;
635 if ((ump->discinfo.mmc_cur & MMC_CAP_RECORDABLE) == 0) {
639 if (ump->discinfo.mmc_cur & MMC_CAP_SEQUENTIAL) {
640 if (ump->discinfo.disc_state == MMC_STATE_FULL) {
659 ump->strategy = &udf_strat_bootstrap;
660 udf_discstrat_init(ump);
663 num_anchors = udf_read_anchors(ump);
671 if ((error = udf_read_vds_space(ump))) {
677 udf_discstrat_finish(ump);
680 if ((error = udf_process_vds(ump))) {
687 KASSERT(ump->strategy != &udf_strat_bootstrap);
688 udf_discstrat_init(ump);
691 ump->la_lmapping = malloc(sizeof(uint64_t) * UDF_MAX_MAPPINGS,
693 ump->la_pmapping = malloc(sizeof(uint64_t) * UDF_MAX_MAPPINGS,
697 lb_size = udf_rw32(ump->logical_vol->lb_size);
698 ump->la_node_ad_cpy = malloc(lb_size * UDF_MAX_ALLOC_EXTENTS,
700 memset(ump->la_node_ad_cpy, 0, lb_size * UDF_MAX_ALLOC_EXTENTS);
703 mp->mnt_data = ump;
711 if ((error = udf_read_vds_tables(ump))) {
718 logvol_integrity = udf_rw32(ump->logvol_integrity->integrity_type);
726 if ((error = udf_read_rootdirs(ump))) {
756 struct udf_mount *ump = VFSTOUDF(mp);
762 dir_loc = &ump->fileset_desc->rootdir_icb;
763 error = udf_get_node(ump, dir_loc, &root_dir);
782 struct udf_mount *ump = VFSTOUDF(mp);
790 sbp->f_bsize = ump->discinfo.sector_size;
791 sbp->f_frsize = ump->discinfo.sector_size;
792 sbp->f_iosize = ump->discinfo.sector_size;
794 mutex_enter(&ump->allocate_mutex);
796 udf_calc_freespace(ump, &sizeblks, &freeblks);
802 lvid = ump->logvol_integrity;
819 mutex_exit(&ump->allocate_mutex);
833 udf_sync_writeout_system_files(struct udf_mount *ump, int clearflags)
840 if (ump->lvclose & UDF_WRITE_VAT)
841 udf_writeout_vat(ump);
844 if (ump->lvclose & UDF_WRITE_PART_BITMAPS) {
846 error = udf_write_metadata_partition_spacetable(ump, MNT_WAIT);
852 error = udf_write_physical_partition_spacetables(ump, MNT_WAIT);
857 ump->lvclose &= ~UDF_WRITE_PART_BITMAPS;
867 struct udf_mount *ump = VFSTOUDF(mp);
874 if (ump->syncing && !waitfor) {
880 ump->syncing = 1;
883 udf_do_sync(ump, cred, waitfor);
886 udf_sync_writeout_system_files(ump, true);
889 ump->syncing = 0;