Lines Matching refs:hfsmp

117 	struct hfsmount *hfsmp;
177 hfsmp = VTOHFS(vp);
203 filebytes = (off_t)fp->ff_blocks * (off_t)hfsmp->blockSize;
205 if ((hfsmp->hfs_flags & HFS_STANDARD) &&
225 if (hfsmp->hfc_stage == HFC_RECORDING && retval == 0) {
240 if (cp->c_atime < hfsmp->hfc_timebase) {
275 struct hfsmount *hfsmp;
340 hfsmp = VTOHFS(vp);
355 if ((hfsmp->hfs_flags & HFS_HAS_SPARSE_DEVICE) &&
356 (hfs_freeblks(hfsmp, 0) < 2048)) {
395 filebytes = (off_t)fp->ff_blocks * (off_t)hfsmp->blockSize;
478 retval = hfs_chkdq(cp, (int64_t)(roundup(bytesToAdd, hfsmp->blockSize)),
484 if (hfs_start_transaction(hfsmp) != 0) {
498 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
501 if (hfsmp->hfc_stage == HFC_RECORDING) {
504 retval = MacToVFSError(ExtendFileC (hfsmp, (FCB*)fp, bytesToAdd,
507 hfs_systemfile_unlock(hfsmp, lockflags);
513 filebytes = (off_t)fp->ff_blocks * (off_t)hfsmp->blockSize;
518 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
519 (void) hfs_end_transaction(hfsmp);
729 if (hfsmp->hfc_stage == HFC_RECORDING) {
749 VNOP_IOCTL(hfsmp->hfs_devvp, DKIOCSYNCHRONIZECACHE, NULL, FWRITE, NULL);
780 filebytes = (off_t)fp->ff_blocks * (off_t)hfsmp->blockSize;
790 hfsmp->vcbWrCnt++;
1050 do_attr_lookup(struct hfsmount *hfsmp, struct access_cache *cache, cnid_t cnid,
1066 if (hfs_chash_snoop(hfsmp, cnid, 0, snoop_callback, &c_info) == 0) {
1075 if (throttle_io_will_be_throttled(-1, HFSTOVFS(hfsmp)))
1078 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_SHARED_LOCK);
1081 error = cat_getkeyplusattr(hfsmp, cnid, keyp, cnattrp);
1083 hfs_systemfile_unlock(hfsmp, lockflags);
1098 do_access_check(struct hfsmount *hfsmp, int *err, struct access_cache *cache, HFSCatalogNodeID nodeID,
1164 myErr = do_attr_lookup(hfsmp, cache, thisNodeID, skip_cp, &catkey, &cnattr);
1181 myErr = hfs_vget(hfsmp, thisNodeID, &vp, 0, 0);
1205 myPerms = DerivePermissionSummary(cnattr.ca_uid, cnattr.ca_gid, cnattr.ca_mode, hfsmp->hfs_mp,myp_ucred, theProcPtr);
1249 do_bulk_access_check(struct hfsmount *hfsmp, struct vnode *vp,
1439 error = do_attr_lookup(hfsmp, &cache, cnid, skip_cp, &catkey, &cnattr);
1459 myErr = hfs_vget(hfsmp, cnid, &cvp, 0, 0);
1481 cnattr.ca_mode, hfsmp->hfs_mp, cred, p);
1501 myaccess = do_access_check(hfsmp, &error, &cache, catkey.hfsPlus.parentID,
1574 struct hfsmount *hfsmp = VTOHFS(vp);
1627 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
1644 if ((error = hfs_vfs_vget(HFSTOVFS(hfsmp), cnid, &file_vp, context))) {
1662 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
1675 if ((error = hfs_lookup_siblinglinks(hfsmp, linkfileid, &prevlinkid, &nextlinkid))) {
1688 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
1697 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
1701 return hfs_resize_progress(hfsmp, (u_int32_t *)ap->a_data);
1708 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
1718 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
1722 cursize = (u_int64_t)hfsmp->totalBlocks * (u_int64_t)hfsmp->blockSize;
1725 return hfs_extendfs(hfsmp, *(u_int64_t *)ap->a_data, context);
1727 return hfs_truncatefs(hfsmp, *(u_int64_t *)ap->a_data, context);
1739 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
1747 HFS_MOUNT_LOCK(hfsmp, TRUE);
1749 if ((location >= hfsmp->allocLimit) &&
1755 *(u_int32_t *)ap->a_data = hfsmp->nextAllocation;
1761 if (hfsmp->hfs_metazone_end != 0) {
1762 HFS_UPDATE_NEXT_ALLOCATION(hfsmp, hfsmp->hfs_metazone_end + 1);
1764 hfsmp->hfs_flags |= HFS_SKIP_UPDATE_NEXT_ALLOCATION;
1766 hfsmp->hfs_flags &= ~HFS_SKIP_UPDATE_NEXT_ALLOCATION;
1767 HFS_UPDATE_NEXT_ALLOCATION(hfsmp, location);
1769 MarkVCBDirty(hfsmp);
1771 HFS_MOUNT_UNLOCK(hfsmp, TRUE);
1782 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
1785 if (hfsmp->hfs_flags & HFS_HAS_SPARSE_DEVICE) {
1788 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
1824 hfsmp->hfs_backingfs_rootvp = bsfs_rootvp;
1826 hfsmp->hfs_flags |= HFS_HAS_SPARSE_DEVICE;
1834 ResetVCBFreeExtCache(hfsmp);
1836 hfsmp->hfs_sparsebandblks = bsdata->bandsize / HFSTOVCB(hfsmp)->blockSize;
1837 hfsmp->hfs_sparsebandblks *= 4;
1839 vfs_markdependency(hfsmp->hfs_mp);
1848 hfsmp->hfs_backingfs_maxblocks = 0;
1856 hfsmp->hfs_backingfs_maxblocks = hostfilesizemax / hfsmp->blockSize;
1867 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
1872 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
1876 if ((hfsmp->hfs_flags & HFS_HAS_SPARSE_DEVICE) &&
1877 hfsmp->hfs_backingfs_rootvp) {
1879 hfsmp->hfs_flags &= ~HFS_HAS_SPARSE_DEVICE;
1880 tmpvp = hfsmp->hfs_backingfs_rootvp;
1881 hfsmp->hfs_backingfs_rootvp = NULLVP;
1882 hfsmp->hfs_sparsebandblks = 0;
1899 vfsp = vfs_statfs(HFSTOVFS(hfsmp));
1908 lockflags = hfs_systemfile_lock (hfsmp, SFL_CATALOG , HFS_EXCLUSIVE_LOCK);
1910 HFS_MOUNT_LOCK(hfsmp, TRUE);
1913 if (fileid < hfsmp->vcbNxtCNID) {
1918 *(u_int32_t *)ap->a_data = hfsmp->vcbNxtCNID;
1920 hfsmp->vcbNxtCNID = fileid;
1923 hfsmp->vcbAtrb |= kHFSCatalogNodeIDsReusedMask;
1926 MarkVCBDirty(hfsmp);
1927 HFS_MOUNT_UNLOCK(hfsmp, TRUE);
1928 hfs_systemfile_unlock (hfsmp, lockflags);
1937 hfsmp = VFSTOHFS(mp);
1939 if (!(hfsmp->jnl))
1948 lck_rw_lock_exclusive(&hfsmp->hfs_insync);
1955 hfs_lock_global (hfsmp, HFS_EXCLUSIVE_LOCK);
1959 journal_flush(hfsmp->jnl, TRUE);
1967 if (HFSTOVCB(hfsmp)->extentsRefNum)
1968 vnode_waitforwrites(HFSTOVCB(hfsmp)->extentsRefNum, 0, 0, 0, "hfs freeze");
1969 if (HFSTOVCB(hfsmp)->catalogRefNum)
1970 vnode_waitforwrites(HFSTOVCB(hfsmp)->catalogRefNum, 0, 0, 0, "hfs freeze");
1971 if (HFSTOVCB(hfsmp)->allocationsRefNum)
1972 vnode_waitforwrites(HFSTOVCB(hfsmp)->allocationsRefNum, 0, 0, 0, "hfs freeze");
1973 if (hfsmp->hfs_attribute_vp)
1974 vnode_waitforwrites(hfsmp->hfs_attribute_vp, 0, 0, 0, "hfs freeze");
1975 vnode_waitforwrites(hfsmp->hfs_devvp, 0, 0, 0, "hfs freeze");
1977 hfsmp->hfs_freezing_proc = current_proc();
1990 if (hfsmp->hfs_freezing_proc != current_proc()) {
1997 hfsmp->hfs_freezing_proc = NULL;
1998 hfs_unlock_global (hfsmp);
1999 lck_rw_unlock_exclusive(&hfsmp->hfs_insync);
2007 if (hfsmp->hfs_flags & HFS_STANDARD) {
2017 return do_bulk_access_check(hfsmp, vp, ap, size, context);
2023 if (hfsmp->hfs_flags & HFS_STANDARD) {
2033 return do_bulk_access_check(hfsmp, vp, ap, size, context);
2045 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2059 return hfs_set_volxattr(hfsmp, HFS_SET_XATTREXTENTS_STATE, state);
2084 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2134 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2214 *(uint32_t *)ap->a_data = hfsmp->hfs_mount_time;
2218 *(uint32_t *)ap->a_data = hfsmp->hfs_last_mounted_mtime;
2222 *(uint32_t*)ap->a_data = hfsmp->hfs_freespace_notify_dangerlimit;
2226 if (*(uint32_t *)ap->a_data >= hfsmp->hfs_freespace_notify_warninglimit) {
2230 hfsmp->hfs_freespace_notify_dangerlimit = *(uint32_t *)ap->a_data;
2234 *(uint32_t*)ap->a_data = hfsmp->hfs_freespace_notify_warninglimit;
2238 if ( *(uint32_t *)ap->a_data >= hfsmp->hfs_freespace_notify_desiredlevel
2239 || *(uint32_t *)ap->a_data <= hfsmp->hfs_freespace_notify_dangerlimit) {
2244 hfsmp->hfs_freespace_notify_warninglimit = *(uint32_t *)ap->a_data;
2248 *(uint32_t*)ap->a_data = hfsmp->hfs_freespace_notify_desiredlevel;
2252 if (*(uint32_t *)ap->a_data <= hfsmp->hfs_freespace_notify_warninglimit) {
2256 hfsmp->hfs_freespace_notify_desiredlevel = *(uint32_t *)ap->a_data;
2260 *(uint32_t *)ap->a_data = hfsmp->hfs_notification_conditions;
2266 if (!kauth_cred_issuser(cred) && (kauth_cred_getuid(cred) != vfs_statfs(HFSTOVFS(hfsmp))->f_owner))
2268 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2271 HFS_MOUNT_LOCK(hfsmp, TRUE);
2272 bcopy(ap->a_data, &hfsmp->vcbFndrInfo, sizeof(hfsmp->vcbFndrInfo));
2273 HFS_MOUNT_UNLOCK(hfsmp, TRUE);
2274 (void) hfs_flushvolumeheader(hfsmp, MNT_WAIT, 0);
2280 HFS_MOUNT_LOCK(hfsmp, TRUE);
2281 bcopy(&hfsmp->vcbFndrInfo, ap->a_data, sizeof(hfsmp->vcbFndrInfo));
2282 HFS_MOUNT_UNLOCK(hfsmp, TRUE);
2295 if (!(vfs_flags(HFSTOVFS(hfsmp)) & MNT_ROOTFS) ||
2299 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2303 hfs_mark_volume_inconsistent(hfsmp);
2312 if (hfsmp->jnl == NULL) {
2316 jnl_start = (off_t)(hfsmp->jnl_start * HFSTOVCB(hfsmp)->blockSize) + (off_t)HFSTOVCB(hfsmp)->hfsPlusIOPosOffset;
2317 jnl_size = (off_t)hfsmp->jnl_size;
2340 if (hfsmp->hfs_flags & HFS_READ_ONLY) {
2345 (void) hfs_metadatazone_init(hfsmp, true);
2346 printf ("hfs: Disabling metadata zone on %s\n", hfsmp->vcbVN);
2388 struct hfsmount *hfsmp = VTOHFS(vp);
2401 *vpp = hfsmp->hfs_devvp;
2411 lockflags = hfs_systemfile_lock(hfsmp, SFL_EXTENTS, HFS_EXCLUSIVE_LOCK);
2414 MapFileBlockC (HFSTOVCB(hfsmp),
2422 hfs_systemfile_unlock(hfsmp, lockflags);
2510 struct hfsmount *hfsmp;
2558 hfsmp = VTOHFS(vp);
2565 if (hfs_start_transaction(hfsmp) != 0) {
2578 lockflags = hfs_systemfile_lock(hfsmp, syslocks, HFS_EXCLUSIVE_LOCK);
2596 hfs_systemfile_unlock(hfsmp, lockflags);
2609 retval = ExtendFileC(hfsmp, (FCB*)fp, 0, 0,
2617 HFS_MOUNT_LOCK(hfsmp, TRUE);
2618 hfsmp->loanedBlocks += loanedBlocks;
2619 HFS_MOUNT_UNLOCK(hfsmp, TRUE);
2621 hfs_systemfile_unlock(hfsmp, lockflags);
2625 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
2627 hfs_end_transaction(hfsmp);
2634 retval = MapFileBlockC(hfsmp, (FCB *)fp, ap->a_size, ap->a_foffset,
2637 hfs_systemfile_unlock(hfsmp, lockflags);
2643 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
2644 hfs_end_transaction(hfsmp);
2850 struct hfsmount *hfsmp;
2870 hfsmp = VTOHFS(vp);
2875 if (hfsmp->hfc_stage == HFC_RECORDING) {
2918 hfsmp->hfs_flags & HFS_METADATA_ZONE &&
2921 blockHint = hfsmp->hfs_metazone_start;
2923 if (hfs_start_transaction(hfsmp) != 0) {
2932 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
2951 hfs_systemfile_unlock(hfsmp, lockflags);
2953 if (hfsmp->jnl) {
2959 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
2963 hfs_end_transaction(hfsmp);
3038 HFS_MOUNT_LOCK(hfsmp, TRUE);
3045 hfsmp->loanedBlocks -= loanedBlocks;
3051 hfsmp->loanedBlocks += loanedBlocks;
3057 HFS_MOUNT_UNLOCK(hfsmp, TRUE);
3070 if (hfs_start_transaction(hfsmp) != 0) {
3080 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
3085 hfs_systemfile_unlock(hfsmp, lockflags);
3087 if (hfsmp->jnl) {
3096 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
3099 hfs_end_transaction(hfsmp);
3154 hfs_prepare_release_storage (struct hfsmount *hfsmp, struct vnode *vp) {
3201 HFS_MOUNT_LOCK(hfsmp, TRUE);
3208 hfsmp->loanedBlocks -= loanedBlocks;
3210 HFS_MOUNT_UNLOCK(hfsmp, TRUE);
3235 hfs_release_storage (struct hfsmount *hfsmp, struct filefork *datafork,
3244 blksize = hfsmp->blockSize;
3261 if (hfs_start_transaction(hfsmp) != 0) {
3271 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
3273 error = MacToVFSError(TruncateFileC(HFSTOVCB(hfsmp), datafork, filebytes, 1, 0, fileid, false));
3275 hfs_systemfile_unlock(hfsmp, lockflags);
3280 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
3283 hfs_end_transaction(hfsmp);
3306 if (hfs_start_transaction(hfsmp) != 0) {
3316 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
3318 error = MacToVFSError(TruncateFileC(HFSTOVCB(hfsmp), rsrcfork, filebytes, 1, 1, fileid, false));
3320 hfs_systemfile_unlock(hfsmp, lockflags);
3325 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
3328 hfs_end_transaction(hfsmp);
3454 struct hfsmount *hfsmp;
3479 hfsmp = VTOHFS(vp);
3536 if (hfsmp->hfs_flags & HFS_METADATA_ZONE) {
3541 blockHint = hfsmp->hfs_metazone_start;
3542 } else if ((blockHint >= hfsmp->hfs_metazone_start) &&
3543 (blockHint <= hfsmp->hfs_metazone_end)) {
3547 blockHint = hfsmp->hfs_metazone_end + 1;
3555 if (hfs_start_transaction(hfsmp) != 0) {
3564 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
3575 hfsmp->hfs_flags &= ~HFS_DID_CONTIG_SCAN;
3595 hfs_systemfile_unlock(hfsmp, lockflags);
3597 if (hfsmp->jnl) {
3599 (void) hfs_volupdate(hfsmp, VOL_UPDATE, 0);
3602 hfs_end_transaction(hfsmp);
4378 struct hfsmount *hfsmp;
4398 hfsmp = VTOHFS(vp);
4399 if (hfsmp->hfs_flags & HFS_FRAGMENTED_FREESPACE) {
4413 if (cp_fs_protected (hfsmp->hfs_mp)) {
4418 if (hfsmp->hfs_flags & HFS_SSD) {
4423 blksize = hfsmp->blockSize;
4425 blockHint = hfsmp->nextAllocation;
4462 if (blockHint >= hfsmp->hfs_metazone_start &&
4463 blockHint <= hfsmp->hfs_metazone_end)
4466 if (hfs_start_transaction(hfsmp) != 0) {
4479 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
4481 retval = MapFileBlockC(hfsmp, (FCB *)fp, 1, growsize - 1, &sector_a, NULL);
4490 nextallocsave = hfsmp->nextAllocation;
4491 retval = ExtendFileC(hfsmp, (FCB*)fp, growsize, blockHint, eflags, &newbytes);
4493 HFS_MOUNT_LOCK(hfsmp, TRUE);
4494 HFS_UPDATE_NEXT_ALLOCATION(hfsmp, nextallocsave);
4495 MarkVCBDirty(hfsmp);
4496 HFS_MOUNT_UNLOCK(hfsmp, TRUE);
4511 retval = MapFileBlockC(hfsmp, (FCB *)fp, 1, growsize, &sector_b, NULL);
4518 ((((u_int64_t)sector_b * hfsmp->hfs_logical_block_size) / blksize) >
4519 hfsmp->hfs_metazone_end)) {
4537 hfs_systemfile_unlock(hfsmp, lockflags);
4539 hfs_end_transaction(hfsmp);
4547 (hfs_freeblks(hfsmp, 0) > (datablks * 2))) {
4548 hfsmp->hfs_flags |= HFS_FRAGMENTED_FREESPACE;
4564 if (hfs_start_transaction(hfsmp) != 0) {
4578 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
4580 retval = HeadTruncateFile(hfsmp, (FCB*)fp, headblks);
4582 hfs_systemfile_unlock(hfsmp, lockflags);
4591 hfs_systemfile_unlock(hfsmp, lockflags);
4599 if (hfsmp->jnl) {
4601 (void) hfs_flushvolumeheader(hfsmp, MNT_WAIT, HFS_ALTFLUSH);
4603 (void) hfs_flushvolumeheader(hfsmp, MNT_NOWAIT, 0);
4607 hfs_end_transaction(hfsmp);
4624 lockflags = hfs_systemfile_lock(hfsmp, lockflags, HFS_EXCLUSIVE_LOCK);
4627 (void) TruncateFileC(hfsmp, (FCB*)fp, fp->ff_size, 0, FORK_IS_RSRC(fp),
4630 hfs_systemfile_unlock(hfsmp, lockflags);