Lines Matching defs:hfsmp

121 	struct hfsmount *hfsmp;
183 hfsmp = VTOHFS(vp);
207 filebytes = (off_t)fp->ff_blocks * (off_t)hfsmp->blockSize;
209 if ((hfsmp->hfs_flags & HFS_STANDARD) &&
229 if (hfsmp->hfc_stage == HFC_RECORDING && retval == 0) {
244 if (cp->c_atime < hfsmp->hfc_timebase) {
279 struct hfsmount *hfsmp;
343 hfsmp = VTOHFS(vp);
358 if ((hfsmp->hfs_flags & HFS_HAS_SPARSE_DEVICE) &&
359 (hfs_freeblks(hfsmp, 0) < 2048)) {
399 filebytes = (off_t)fp->ff_blocks * (off_t)hfsmp->blockSize;
486 retval = hfs_chkdq(cp, (int64_t)(roundup(bytesToAdd, hfsmp->blockSize)),
492 if (hfs_start_transaction(hfsmp) != 0) {
506 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
509 if (hfsmp->hfc_stage == HFC_RECORDING) {
512 retval = MacToVFSError(ExtendFileC (hfsmp, (FCB*)fp, bytesToAdd,
515 hfs_systemfile_unlock(hfsmp, lockflags);
521 filebytes = (off_t)fp->ff_blocks * (off_t)hfsmp->blockSize;
526 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
527 (void) hfs_end_transaction(hfsmp);
737 if (hfsmp->hfc_stage == HFC_RECORDING) {
757 VNOP_IOCTL(hfsmp->hfs_devvp, DKIOCSYNCHRONIZECACHE, NULL, FWRITE, NULL);
787 filebytes = (off_t)fp->ff_blocks * (off_t)hfsmp->blockSize;
797 hfsmp->vcbWrCnt++;
1053 do_attr_lookup(struct hfsmount *hfsmp, struct access_cache *cache, cnid_t cnid,
1069 if (hfs_chash_snoop(hfsmp, cnid, 0, snoop_callback, &c_info) == 0) {
1078 if (throttle_io_will_be_throttled(-1, HFSTOVFS(hfsmp)))
1081 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_SHARED_LOCK);
1084 error = cat_getkeyplusattr(hfsmp, cnid, keyp, cnattrp);
1086 hfs_systemfile_unlock(hfsmp, lockflags);
1101 do_access_check(struct hfsmount *hfsmp, int *err, struct access_cache *cache, HFSCatalogNodeID nodeID,
1167 myErr = do_attr_lookup(hfsmp, cache, thisNodeID, skip_cp, &catkey, &cnattr);
1184 myErr = hfs_vget(hfsmp, thisNodeID, &vp, 0, 0);
1208 myPerms = DerivePermissionSummary(cnattr.ca_uid, cnattr.ca_gid, cnattr.ca_mode, hfsmp->hfs_mp,myp_ucred, theProcPtr);
1252 do_bulk_access_check(struct hfsmount *hfsmp, struct vnode *vp,
1442 error = do_attr_lookup(hfsmp, &cache, cnid, skip_cp, &catkey, &cnattr);
1462 myErr = hfs_vget(hfsmp, cnid, &cvp, 0, 0);
1484 cnattr.ca_mode, hfsmp->hfs_mp, cred, p);
1504 myaccess = do_access_check(hfsmp, &error, &cache, catkey.hfsPlus.parentID,
1575 struct hfsmount *hfsmp = VTOHFS(vp);
1629 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
1649 if ((error = hfs_vfs_vget(HFSTOVFS(hfsmp), cnid, &file_vp, context))) {
1771 if (tmp_doc_id == 0 && (error = hfs_generate_document_id(hfsmp, &new_id)) == 0) {
1785 if ((error = hfs_start_transaction(hfsmp)) == 0) {
1786 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_EXCLUSIVE_LOCK);
1788 (void) cat_update(hfsmp, &cp->c_desc, &cp->c_attr, NULL, NULL);
1790 hfs_systemfile_unlock (hfsmp, lockflags);
1791 (void) hfs_end_transaction(hfsmp);
1796 FSE_ARG_DEV, hfsmp->hfs_raw_dev,
1841 if (VTOHFS(to_vp) != hfsmp) {
1877 if ((error = hfs_generate_document_id(hfsmp, &new_id)) == 0) {
1901 if ((error = hfs_start_transaction(hfsmp)) == 0) {
1903 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_EXCLUSIVE_LOCK);
1905 (void) cat_update(hfsmp, &cp->c_desc, &cp->c_attr, NULL, NULL);
1906 (void) cat_update(hfsmp, &to_cp->c_desc, &to_cp->c_attr, NULL, NULL);
1908 hfs_systemfile_unlock (hfsmp, lockflags);
1909 (void) hfs_end_transaction(hfsmp);
1914 FSE_ARG_DEV, hfsmp->hfs_raw_dev,
1955 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
1968 if ((error = hfs_lookup_siblinglinks(hfsmp, linkfileid, &prevlinkid, &nextlinkid))) {
1981 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
1990 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
1994 return hfs_resize_progress(hfsmp, (u_int32_t *)ap->a_data);
2001 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
2011 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2015 cursize = (u_int64_t)hfsmp->totalBlocks * (u_int64_t)hfsmp->blockSize;
2018 return hfs_extendfs(hfsmp, *(u_int64_t *)ap->a_data, context);
2020 return hfs_truncatefs(hfsmp, *(u_int64_t *)ap->a_data, context);
2032 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
2040 hfs_lock_mount(hfsmp);
2042 if ((location >= hfsmp->allocLimit) &&
2048 *(u_int32_t *)ap->a_data = hfsmp->nextAllocation;
2054 if (hfsmp->hfs_metazone_end != 0) {
2055 HFS_UPDATE_NEXT_ALLOCATION(hfsmp, hfsmp->hfs_metazone_end + 1);
2057 hfsmp->hfs_flags |= HFS_SKIP_UPDATE_NEXT_ALLOCATION;
2059 hfsmp->hfs_flags &= ~HFS_SKIP_UPDATE_NEXT_ALLOCATION;
2060 HFS_UPDATE_NEXT_ALLOCATION(hfsmp, location);
2062 MarkVCBDirty(hfsmp);
2064 hfs_unlock_mount(hfsmp);
2075 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2078 if (hfsmp->hfs_flags & HFS_HAS_SPARSE_DEVICE) {
2081 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
2117 hfsmp->hfs_backingfs_rootvp = bsfs_rootvp;
2119 hfsmp->hfs_flags |= HFS_HAS_SPARSE_DEVICE;
2127 ResetVCBFreeExtCache(hfsmp);
2129 hfsmp->hfs_sparsebandblks = bsdata->bandsize / HFSTOVCB(hfsmp)->blockSize;
2130 hfsmp->hfs_sparsebandblks *= 4;
2141 hfsmp->hfs_backingfs_maxblocks = 0;
2149 hfsmp->hfs_backingfs_maxblocks = hostfilesizemax / hfsmp->blockSize;
2160 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
2165 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2169 if ((hfsmp->hfs_flags & HFS_HAS_SPARSE_DEVICE) &&
2170 hfsmp->hfs_backingfs_rootvp) {
2172 hfsmp->hfs_flags &= ~HFS_HAS_SPARSE_DEVICE;
2173 tmpvp = hfsmp->hfs_backingfs_rootvp;
2174 hfsmp->hfs_backingfs_rootvp = NULLVP;
2175 hfsmp->hfs_sparsebandblks = 0;
2192 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
2201 lockflags = hfs_systemfile_lock (hfsmp, SFL_CATALOG , HFS_EXCLUSIVE_LOCK);
2203 hfs_lock_mount(hfsmp);
2206 if (fileid < hfsmp->vcbNxtCNID) {
2211 *(u_int32_t *)ap->a_data = hfsmp->vcbNxtCNID;
2213 hfsmp->vcbNxtCNID = fileid;
2216 hfsmp->vcbAtrb |= kHFSCatalogNodeIDsReusedMask;
2219 MarkVCBDirty(hfsmp);
2220 hfs_unlock_mount(hfsmp);
2221 hfs_systemfile_unlock (hfsmp, lockflags);
2230 hfsmp = VFSTOHFS(mp);
2232 if (!(hfsmp->jnl))
2241 lck_rw_lock_exclusive(&hfsmp->hfs_insync);
2248 hfs_lock_global (hfsmp, HFS_EXCLUSIVE_LOCK);
2252 journal_flush(hfsmp->jnl, TRUE);
2260 if (HFSTOVCB(hfsmp)->extentsRefNum)
2261 vnode_waitforwrites(HFSTOVCB(hfsmp)->extentsRefNum, 0, 0, 0, "hfs freeze");
2262 if (HFSTOVCB(hfsmp)->catalogRefNum)
2263 vnode_waitforwrites(HFSTOVCB(hfsmp)->catalogRefNum, 0, 0, 0, "hfs freeze");
2264 if (HFSTOVCB(hfsmp)->allocationsRefNum)
2265 vnode_waitforwrites(HFSTOVCB(hfsmp)->allocationsRefNum, 0, 0, 0, "hfs freeze");
2266 if (hfsmp->hfs_attribute_vp)
2267 vnode_waitforwrites(hfsmp->hfs_attribute_vp, 0, 0, 0, "hfs freeze");
2268 vnode_waitforwrites(hfsmp->hfs_devvp, 0, 0, 0, "hfs freeze");
2270 hfsmp->hfs_freezing_proc = current_proc();
2283 if (hfsmp->hfs_freezing_proc != current_proc()) {
2290 hfsmp->hfs_freezing_proc = NULL;
2291 hfs_unlock_global (hfsmp);
2292 lck_rw_unlock_exclusive(&hfsmp->hfs_insync);
2300 if (hfsmp->hfs_flags & HFS_STANDARD) {
2310 return do_bulk_access_check(hfsmp, vp, ap, size, context);
2316 if (hfsmp->hfs_flags & HFS_STANDARD) {
2326 return do_bulk_access_check(hfsmp, vp, ap, size, context);
2338 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2352 return hfs_set_volxattr(hfsmp, HFS_SET_XATTREXTENTS_STATE, state);
2377 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2415 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2439 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2568 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2648 *(uint32_t *)ap->a_data = hfsmp->hfs_mount_time;
2652 *(uint32_t *)ap->a_data = hfsmp->hfs_last_mounted_mtime;
2656 *(uint32_t*)ap->a_data = hfsmp->hfs_freespace_notify_dangerlimit;
2660 if (*(uint32_t *)ap->a_data >= hfsmp->hfs_freespace_notify_warninglimit) {
2664 hfsmp->hfs_freespace_notify_dangerlimit = *(uint32_t *)ap->a_data;
2668 *(uint32_t*)ap->a_data = hfsmp->hfs_freespace_notify_warninglimit;
2672 if ( *(uint32_t *)ap->a_data >= hfsmp->hfs_freespace_notify_desiredlevel
2673 || *(uint32_t *)ap->a_data <= hfsmp->hfs_freespace_notify_dangerlimit) {
2678 hfsmp->hfs_freespace_notify_warninglimit = *(uint32_t *)ap->a_data;
2682 *(uint32_t*)ap->a_data = hfsmp->hfs_freespace_notify_desiredlevel;
2686 if (*(uint32_t *)ap->a_data <= hfsmp->hfs_freespace_notify_warninglimit) {
2690 hfsmp->hfs_freespace_notify_desiredlevel = *(uint32_t *)ap->a_data;
2694 *(uint32_t *)ap->a_data = hfsmp->hfs_notification_conditions;
2700 if (!kauth_cred_issuser(cred) && (kauth_cred_getuid(cred) != vfs_statfs(HFSTOVFS(hfsmp))->f_owner))
2702 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2705 hfs_lock_mount (hfsmp);
2706 bcopy(ap->a_data, &hfsmp->vcbFndrInfo, sizeof(hfsmp->vcbFndrInfo));
2707 hfs_unlock_mount (hfsmp);
2708 (void) hfs_flushvolumeheader(hfsmp, MNT_WAIT, 0);
2714 hfs_lock_mount (hfsmp);
2715 bcopy(&hfsmp->vcbFndrInfo, ap->a_data, sizeof(hfsmp->vcbFndrInfo));
2716 hfs_unlock_mount(hfsmp);
2729 if (!(vfs_flags(HFSTOVFS(hfsmp)) & MNT_ROOTFS) ||
2733 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2737 hfs_mark_volume_inconsistent(hfsmp);
2746 if (hfsmp->jnl == NULL) {
2750 jnl_start = (off_t)(hfsmp->jnl_start * HFSTOVCB(hfsmp)->blockSize) + (off_t)HFSTOVCB(hfsmp)->hfsPlusIOPosOffset;
2751 jnl_size = (off_t)hfsmp->jnl_size;
2774 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2779 (void) hfs_metadatazone_init(hfsmp, true);
2780 printf ("hfs: Disabling metadata zone on %s\n", hfsmp->vcbVN);
2822 struct hfsmount *hfsmp = VTOHFS(vp);
2835 *vpp = hfsmp->hfs_devvp;
2845 lockflags = hfs_systemfile_lock(hfsmp, SFL_EXTENTS, HFS_EXCLUSIVE_LOCK);
2848 MapFileBlockC (HFSTOVCB(hfsmp),
2856 hfs_systemfile_unlock(hfsmp, lockflags);
2944 struct hfsmount *hfsmp;
2992 hfsmp = VTOHFS(vp);
2999 if (hfs_start_transaction(hfsmp) != 0) {
3012 lockflags = hfs_systemfile_lock(hfsmp, syslocks, HFS_EXCLUSIVE_LOCK);
3030 hfs_systemfile_unlock(hfsmp, lockflags);
3043 retval = ExtendFileC(hfsmp, (FCB*)fp, 0, 0,
3051 hfs_lock_mount (hfsmp);
3052 hfsmp->loanedBlocks += loanedBlocks;
3053 hfs_unlock_mount (hfsmp);
3055 hfs_systemfile_unlock(hfsmp, lockflags);
3059 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
3061 hfs_end_transaction(hfsmp);
3068 retval = MapFileBlockC(hfsmp, (FCB *)fp, ap->a_size, ap->a_foffset,
3071 hfs_systemfile_unlock(hfsmp, lockflags);
3077 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
3078 hfs_end_transaction(hfsmp);
3289 struct hfsmount *hfsmp;
3311 hfsmp = VTOHFS(vp);
3316 if (hfsmp->hfc_stage == HFC_RECORDING) {
3359 hfsmp->hfs_flags & HFS_METADATA_ZONE &&
3362 blockHint = hfsmp->hfs_metazone_start;
3364 if (hfs_start_transaction(hfsmp) != 0) {
3373 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
3392 hfs_systemfile_unlock(hfsmp, lockflags);
3394 if (hfsmp->jnl) {
3400 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
3404 hfs_end_transaction(hfsmp);
3481 hfs_lock_mount(hfsmp);
3487 hfsmp->loanedBlocks -= loanedBlocks;
3493 hfsmp->loanedBlocks += loanedBlocks;
3499 hfs_unlock_mount (hfsmp);
3512 if (hfs_start_transaction(hfsmp) != 0) {
3522 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
3527 hfs_systemfile_unlock(hfsmp, lockflags);
3529 if (hfsmp->jnl) {
3538 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
3541 hfs_end_transaction(hfsmp);
3611 hfs_prepare_release_storage (struct hfsmount *hfsmp, struct vnode *vp) {
3658 hfs_lock_mount (hfsmp);
3664 hfsmp->loanedBlocks -= loanedBlocks;
3666 hfs_unlock_mount (hfsmp);
3691 hfs_release_storage (struct hfsmount *hfsmp, struct filefork *datafork,
3700 blksize = hfsmp->blockSize;
3717 if (hfs_start_transaction(hfsmp) != 0) {
3727 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
3729 error = MacToVFSError(TruncateFileC(HFSTOVCB(hfsmp), datafork, filebytes, 1, 0, fileid, false));
3731 hfs_systemfile_unlock(hfsmp, lockflags);
3736 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
3739 hfs_end_transaction(hfsmp);
3762 if (hfs_start_transaction(hfsmp) != 0) {
3772 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
3774 error = MacToVFSError(TruncateFileC(HFSTOVCB(hfsmp), rsrcfork, filebytes, 1, 1, fileid, false));
3776 hfs_systemfile_unlock(hfsmp, lockflags);
3781 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
3784 hfs_end_transaction(hfsmp);
3910 struct hfsmount *hfsmp;
3935 hfsmp = VTOHFS(vp);
3992 if (hfsmp->hfs_flags & HFS_METADATA_ZONE) {
3997 blockHint = hfsmp->hfs_metazone_start;
3998 } else if ((blockHint >= hfsmp->hfs_metazone_start) &&
3999 (blockHint <= hfsmp->hfs_metazone_end)) {
4003 blockHint = hfsmp->hfs_metazone_end + 1;
4011 if (hfs_start_transaction(hfsmp) != 0) {
4020 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
4031 hfsmp->hfs_flags &= ~HFS_DID_CONTIG_SCAN;
4051 hfs_systemfile_unlock(hfsmp, lockflags);
4053 if (hfsmp->jnl) {
4055 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
4058 hfs_end_transaction(hfsmp);
4859 struct hfsmount *hfsmp;
4880 hfsmp = VTOHFS(vp);
4881 if (hfsmp->hfs_flags & HFS_FRAGMENTED_FREESPACE) {
4895 if (cp_fs_protected (hfsmp->hfs_mp)) {
4900 if (hfsmp->hfs_flags & HFS_SSD) {
4905 blksize = hfsmp->blockSize;
4907 blockHint = hfsmp->nextAllocation;
4943 if (blockHint >= hfsmp->hfs_metazone_start &&
4944 blockHint <= hfsmp->hfs_metazone_end)
4947 if (hfs_start_transaction(hfsmp) != 0) {
4960 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
4962 retval = MapFileBlockC(hfsmp, (FCB *)fp, 1, growsize - 1, &sector_a, NULL);
4971 nextallocsave = hfsmp->nextAllocation;
4972 retval = ExtendFileC(hfsmp, (FCB*)fp, growsize, blockHint, eflags, &newbytes);
4974 hfs_lock_mount(hfsmp);
4975 HFS_UPDATE_NEXT_ALLOCATION(hfsmp, nextallocsave);
4976 MarkVCBDirty(hfsmp);
4977 hfs_unlock_mount(hfsmp);
4987 printf("hfs_relocate: allocation failed id=%u, vol=%s\n", cp->c_cnid, hfsmp->vcbVN);
4992 retval = MapFileBlockC(hfsmp, (FCB *)fp, 1, growsize, &sector_b, NULL);
4999 ((((u_int64_t)sector_b * hfsmp->hfs_logical_block_size) / blksize) >
5000 hfsmp->hfs_metazone_end)) {
5018 hfs_systemfile_unlock(hfsmp, lockflags);
5020 hfs_end_transaction(hfsmp);
5028 (hfs_freeblks(hfsmp, 0) > (datablks * 2))) {
5029 hfsmp->hfs_flags |= HFS_FRAGMENTED_FREESPACE;
5045 if (hfs_start_transaction(hfsmp) != 0) {
5059 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
5061 retval = HeadTruncateFile(hfsmp, (FCB*)fp, headblks);
5063 hfs_systemfile_unlock(hfsmp, lockflags);
5072 hfs_systemfile_unlock(hfsmp, lockflags);
5080 if (hfsmp->jnl) {
5082 (void) hfs_flushvolumeheader(hfsmp, MNT_WAIT, HFS_ALTFLUSH);
5084 (void) hfs_flushvolumeheader(hfsmp, MNT_NOWAIT, 0);
5088 hfs_end_transaction(hfsmp);
5105 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
5108 (void) TruncateFileC(hfsmp, (FCB*)fp, fp->ff_size, 0, FORK_IS_RSRC(fp),
5111 hfs_systemfile_unlock(hfsmp, lockflags);