• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.5.8/xnu-1228.15.4/bsd/hfs/

Lines Matching defs:hfsmp

84 static int hfs_metasync(struct hfsmount *hfsmp, daddr64_t node, __unused struct proc *p);
85 static int hfs_metasync_all(struct hfsmount *hfsmp);
294 struct hfsmount *hfsmp;
302 hfsmp = VTOHFS(vp);
349 if (hfsmp->hfs_freezing_proc == p && proc_exiting(p)) {
350 hfsmp->hfs_freezing_proc = NULL;
351 hfs_global_exclusive_lock_release(hfsmp);
352 lck_rw_unlock_exclusive(&hfsmp->hfs_insync);
372 hfs_sync_ejectable(hfsmp);
393 struct hfsmount *hfsmp;
423 hfsmp = VTOHFS(vp);
436 hfs_touchtimes(hfsmp, cp);
458 if ((hfsmp->hfs_flags & HFS_FOLDERCOUNT) &&
468 if (hfsmp->hfs_private_desc[FILE_HARDLINKS].cd_cnid != 0) {
471 if (hfsmp->hfs_private_desc[DIR_HARDLINKS].cd_cnid != 0) {
483 if (hfsmp->hfs_private_desc[FILE_HARDLINKS].cd_cnid != 0)
485 if (hfsmp->hfs_private_desc[DIR_HARDLINKS].cd_cnid != 0)
487 if (hfsmp->jnl || ((hfsmp->vcbAtrb & kHFSVolumeJournaledMask) && (hfsmp->hfs_flags & HFS_READ_ONLY)))
507 VATTR_RETURN(vap, va_data_alloc, blocks * (u_int64_t)hfsmp->blockSize);
525 error = hfs_vgetrsrc(hfsmp, vp, &rvp, TRUE);
542 VATTR_RETURN(vap, va_total_alloc, (u_int64_t)cp->c_blocks * (u_int64_t)hfsmp->blockSize);
582 vap->va_iosize = hfsmp->hfs_logBlockSize;
658 if ((error = hfs_lookuplink(hfsmp, vap->va_linkid, &prevlinkid, &nextlinkid))) {
671 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_SHARED_LOCK);
672 error = cat_findname(hfsmp, nextlinkid, &linkdesc);
673 hfs_systemfile_unlock(hfsmp, lockflags);
722 struct hfsmount *hfsmp;
729 hfsmp = VTOHFS(vp);
732 if (hfsmp->hfs_jnlfileid == VTOC(vp)->c_fileid) {
877 hfs_setencodingbits(hfsmp, cp->c_encoding);
1122 struct hfsmount *hfsmp;
1148 hfsmp = VTOHFS(from_vp);
1158 if (hfsmp->jnl) {
1163 if (extd->startBlock == VTOVCB(from_vp)->vcbJinfoBlock || extd->startBlock == hfsmp->jnl_start) {
1171 if (extd->startBlock == VTOVCB(to_vp)->vcbJinfoBlock || extd->startBlock == hfsmp->jnl_start) {
1178 if ((error = hfs_start_transaction(hfsmp)) != 0) {
1186 if ((error = cat_preflight(hfsmp, CAT_EXCHANGE, &cookie, vfs_context_proc(ap->a_context)))) {
1195 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG | SFL_EXTENTS | SFL_ATTRIBUTE, HFS_EXCLUSIVE_LOCK);
1202 from_parid = hfsmp->hfs_private_desc[FILE_HARDLINKS].cd_cnid;
1212 to_parid = hfsmp->hfs_private_desc[FILE_HARDLINKS].cd_cnid;
1220 error = ExchangeFileIDs(hfsmp, from_nameptr, to_nameptr, from_parid,
1222 hfs_systemfile_unlock(hfsmp, lockflags);
1305 cat_postflight(hfsmp, &cookie, vfs_context_proc(ap->a_context));
1308 hfs_end_transaction(hfsmp);
1326 struct hfsmount *hfsmp = VTOHFS(vp);
1347 if (hfsmp->jnl == NULL) {
1424 // if (hfsmp->jnl && journal_active(hfsmp->jnl) >= 0)
1425 if (hfsmp->jnl)
1463 if (hfsmp->jnl) {
1464 journal_flush(hfsmp->jnl);
1466 retval = hfs_metasync_all(hfsmp);
1468 VNOP_IOCTL(hfsmp->hfs_devvp, DKIOCSYNCHRONIZECACHE, NULL, FWRITE, NULL);
1479 hfs_metasync(struct hfsmount *hfsmp, daddr64_t node, __unused struct proc *p)
1485 vp = HFSTOVCB(hfsmp)->catalogRefNum;
1488 if (hfsmp->jnl) {
1492 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_EXCLUSIVE_LOCK);
1512 hfs_systemfile_unlock(hfsmp, lockflags);
1525 hfs_metasync_all(struct hfsmount *hfsmp)
1530 lockflags = hfs_systemfile_lock(hfsmp,
1534 if (hfsmp->hfs_catalog_vp)
1535 hfs_btsync(hfsmp->hfs_catalog_vp, 0);
1536 if (hfsmp->hfs_extents_vp)
1537 hfs_btsync(hfsmp->hfs_extents_vp, 0);
1538 if (hfsmp->hfs_attribute_vp)
1539 hfs_btsync(hfsmp->hfs_attribute_vp, 0);
1542 if (hfsmp->hfs_catalog_vp)
1543 vnode_waitforwrites(hfsmp->hfs_catalog_vp, 0, 0, 0, "hfs_metasync_all");
1544 if (hfsmp->hfs_extents_vp)
1545 vnode_waitforwrites(hfsmp->hfs_extents_vp, 0, 0, 0, "hfs_metasync_all");
1546 if (hfsmp->hfs_attribute_vp)
1547 vnode_waitforwrites(hfsmp->hfs_attribute_vp, 0, 0, 0, "hfs_metasync_all");
1549 hfs_systemfile_unlock(hfsmp, lockflags);
1635 struct hfsmount * hfsmp;
1642 hfsmp = VTOHFS(vp);
1657 return hfs_unlink(hfsmp, dvp, vp, cnp, skip_reserve);
1660 if ((hfsmp->hfs_attribute_vp != NULL) &&
1669 if (hfsmp->hfs_flags & HFS_QUOTAS)
1672 if ((error = hfs_start_transaction(hfsmp)) != 0) {
1705 if (!hfs_valid_cnode(hfsmp, dvp, cnp, cp->c_fileid)) {
1711 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG | SFL_ATTRIBUTE | SFL_BITMAP, HFS_EXCLUSIVE_LOCK);
1717 if ((error = cat_preflight(hfsmp, CAT_DELETE, NULL, 0))) {
1718 hfs_systemfile_unlock(hfsmp, lockflags);
1723 error = cat_delete(hfsmp, &desc, &cp->c_attr);
1728 DEC_FOLDERCOUNT(hfsmp, dcp->c_attr);
1732 hfs_touchtimes(hfsmp, cp);
1733 (void) cat_update(hfsmp, &dcp->c_desc, &dcp->c_attr, NULL, NULL);
1737 hfs_systemfile_unlock(hfsmp, lockflags);
1743 if (hfsmp->hfs_flags & HFS_QUOTAS)
1749 hfs_volupdate(hfsmp, VOL_RMDIR, (dcp->c_cnid == kHFSRootFolderID));
1769 hfs_end_transaction(hfsmp);
1844 hfs_removefile_callback(struct buf *bp, void *hfsmp) {
1851 journal_kill_block(((struct hfsmount *)hfsmp)->jnl, bp);
1870 struct hfsmount *hfsmp;
1884 hfsmp = VTOHFS(vp);
1891 if (!hfs_valid_cnode(hfsmp, dvp, cnp, cp->c_fileid)) {
1900 if (hfsmp->jnl &&
1901 (cp->c_fileid == hfsmp->hfs_jnlfileid || cp->c_fileid == hfsmp->hfs_jnlinfoblkid)) {
1919 return hfs_unlink(hfsmp, dvp, vp, cnp, skip_reserve);
1929 if ((cp->c_parentcnid != hfsmp->hfs_private_desc[FILE_HARDLINKS].cd_cnid) &&
1958 error = hfs_vgetrsrc(hfsmp, vp, &rvp, FALSE);
1978 if ((hfsmp->hfs_attribute_vp != NULL) &&
1989 (hfsmp->hfs_private_desc[FILE_HARDLINKS].cd_cnid == 0)) {
1996 if (hfsmp->hfs_flags & HFS_QUOTAS)
2016 if ((error = hfs_start_transaction(hfsmp)) != 0) {
2022 if (hfsmp->jnl && vnode_islnk(vp))
2023 buf_iterate(vp, hfs_removefile_callback, BUF_SKIP_NONLOCKED, (void *)hfsmp);
2087 to_desc.cd_parentcnid = hfsmp->hfs_private_desc[FILE_HARDLINKS].cd_cnid;
2091 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_EXCLUSIVE_LOCK);
2093 if ((error = cat_preflight(hfsmp, CAT_RENAME, NULL, 0))) {
2094 hfs_systemfile_unlock(hfsmp, lockflags);
2099 error = cat_rename(hfsmp, &desc, &todir_desc,
2103 hfsmp->hfs_private_attr[FILE_HARDLINKS].ca_entries++;
2105 INC_FOLDERCOUNT(hfsmp, hfsmp->hfs_private_attr[FILE_HARDLINKS]);
2107 (void) cat_update(hfsmp, &hfsmp->hfs_private_desc[FILE_HARDLINKS],
2108 &hfsmp->hfs_private_attr[FILE_HARDLINKS], NULL, NULL);
2114 DEC_FOLDERCOUNT(hfsmp, dcp->c_attr);
2119 (void) cat_update(hfsmp, &dcp->c_desc, &dcp->c_attr, NULL, NULL);
2125 (void) cat_update(hfsmp, &to_desc, &cp->c_attr, NULL, NULL);
2127 hfs_systemfile_unlock(hfsmp, lockflags);
2140 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG | SFL_ATTRIBUTE | SFL_BITMAP, HFS_EXCLUSIVE_LOCK);
2142 if ((error = cat_preflight(hfsmp, CAT_DELETE, NULL, 0))) {
2143 hfs_systemfile_unlock(hfsmp, lockflags);
2148 error = cat_delete(hfsmp, &desc, &cp->c_attr);
2167 (void) cat_update(hfsmp, &dcp->c_desc, &dcp->c_attr, NULL, NULL);
2169 hfs_systemfile_unlock(hfsmp, lockflags);
2174 if (hfsmp->hfs_flags & HFS_QUOTAS)
2185 hfs_volupdate(hfsmp, VOL_RMFILE, (dcp->c_cnid == kHFSRootFolderID));
2214 hfs_end_transaction(hfsmp);
2292 struct hfsmount *hfsmp;
2345 hfsmp = VTOHFS(tdvp);
2348 if ((fcp->c_flag & (C_NOEXISTS | C_DELETED)) || !hfs_valid_cnode(hfsmp, fdvp, fcnp, fcp->c_fileid)) {
2353 if (tcp && ((tcp->c_flag & (C_NOEXISTS | C_DELETED)) || !hfs_valid_cnode(hfsmp, tdvp, tcnp, tcp->c_fileid))) {
2390 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_SHARED_LOCK);
2391 if (cat_check_link_ancestry(hfsmp, tdcp->c_fileid, 0)) {
2393 hfs_systemfile_unlock(hfsmp, lockflags);
2396 hfs_systemfile_unlock(hfsmp, lockflags);
2474 (hfs_owner_rights(hfsmp, tcp->c_uid, vfs_context_ucred(tcnp->cn_context), p, false)) ) {
2516 if ((error = hfs_start_transaction(hfsmp)) != 0) {
2530 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_SHARED_LOCK);
2531 if (cat_check_link_ancestry(hfsmp, tdcp->c_fileid, 0)) {
2533 hfs_systemfile_unlock(hfsmp, lockflags);
2536 hfs_systemfile_unlock(hfsmp, lockflags);
2555 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_SHARED_LOCK);
2557 if (cat_lookup(hfsmp, &tmpdesc, 0, NULL, NULL, NULL, &real_cnid) != 0) {
2558 hfs_systemfile_unlock(hfsmp, lockflags);
2564 hfs_systemfile_unlock(hfsmp, lockflags);
2570 if ((error = cat_preflight(hfsmp, CAT_RENAME + CAT_DELETE, &cookie, p))) {
2588 (hfsmp->hfs_flags & HFS_CASE_SENSITIVE)) {
2639 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_EXCLUSIVE_LOCK);
2640 error = cat_rename(hfsmp, &from_desc, &tdcp->c_desc, &to_desc, &out_desc);
2641 hfs_systemfile_unlock(hfsmp, lockflags);
2661 hfs_volupdate(hfsmp, vnode_isdir(fvp) ? VOL_RMDIR : VOL_RMFILE,
2663 hfs_volupdate(hfsmp, vnode_isdir(fvp) ? VOL_MKDIR : VOL_MKFILE,
2678 error = cat_set_childlinkbit(hfsmp, tdcp->c_parentcnid);
2684 INC_FOLDERCOUNT(hfsmp, tdcp->c_attr);
2685 DEC_FOLDERCOUNT(hfsmp, fdcp->c_attr);
2706 cat_postflight(hfsmp, &cookie, p);
2709 hfs_end_transaction(hfsmp);
2776 struct hfsmount *hfsmp;
2792 hfsmp = VTOHFS(dvp);
2796 if (((u_int64_t)hfs_freeblks(hfsmp, 0) * (u_int64_t)hfsmp->blockSize) < len) {
2820 if ((error = hfs_start_transaction(hfsmp)) != 0) {
2841 hfs_end_transaction(hfsmp);
2848 if (hfs_start_transaction(hfsmp) != 0) {
2860 bp = buf_getblk(vp, (daddr64_t)0, roundup((int)fp->ff_size, hfsmp->hfs_physical_block_size),
2862 if (hfsmp->jnl) {
2863 journal_modify_block_start(hfsmp->jnl, bp);
2869 if (hfsmp->jnl) {
2870 journal_modify_block_end(hfsmp->jnl, bp, NULL, NULL);
2884 hfs_end_transaction(hfsmp);
2965 struct hfsmount *hfsmp;
2998 hfsmp = VTOHFS(vp);
3091 if (hfsmp->jnl && uio_isuserspace(uio)) {
3105 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_SHARED_LOCK);
3109 if (cat_findname(hfsmp, cnid_hint, &localhint.dh_desc) == 0) {
3137 error = cat_getdirentries(hfsmp, cp->c_entries, dirhint, uio, extended, &items, &eofflag);
3143 hfs_systemfile_unlock(hfsmp, lockflags);
3172 if (hfsmp->jnl && user_start) {
3352 struct hfsmount *hfsmp;
3357 hfsmp = VTOHFS(vp);
3360 hfsmp->hfs_catalog_vp == NULL){
3363 if ((hfsmp->hfs_flags & HFS_READ_ONLY) || (cp->c_mode == 0)) {
3371 hfs_touchtimes(hfsmp, cp);
3405 if ((error = hfs_start_transaction(hfsmp)) != 0) {
3429 datafork.cf_size = datafork.cf_blocks * HFSTOVCB(hfsmp)->blockSize;
3441 rsrcfork.cf_size = rsrcfork.cf_blocks * HFSTOVCB(hfsmp)->blockSize;
3448 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_EXCLUSIVE_LOCK);
3451 error = cat_update(hfsmp, &cp->c_desc, &cp->c_attr, dataforkp, rsrcforkp);
3453 hfs_systemfile_unlock(hfsmp, lockflags);
3458 hfs_end_transaction(hfsmp);
3476 struct hfsmount *hfsmp;
3491 hfsmp = VTOHFS(dvp);
3503 if ((hfs_freeblks(hfsmp, 1) == 0) && (vfs_context_suser(ctx) != 0)) {
3523 if ((hfsmp->hfs_flags & HFS_STANDARD) && gTimeZone.tz_dsttime) {
3537 if (!(hfsmp->hfs_flags & HFS_STANDARD)) {
3539 if (hfsmp->hfs_flags & HFS_FOLDERCOUNT)
3571 if ((error = hfs_start_transaction(hfsmp)) != 0) {
3579 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG | SFL_ATTRIBUTE, HFS_EXCLUSIVE_LOCK);
3582 if ((error = cat_preflight(hfsmp, CAT_CREATE, NULL, 0))) {
3583 hfs_systemfile_unlock(hfsmp, lockflags);
3586 error = cat_create(hfsmp, &in_desc, &attr, &out_desc);
3592 INC_FOLDERCOUNT(hfsmp, dcp->c_attr);
3597 (void) cat_update(hfsmp, &dcp->c_desc, &dcp->c_attr, NULL, NULL);
3600 hfs_systemfile_unlock(hfsmp, lockflags);
3616 hfs_volupdate(hfsmp, vnodetype == VDIR ? VOL_MKDIR : VOL_MKFILE,
3632 hfs_end_transaction(hfsmp);
3646 error = hfs_getnewvnode(hfsmp, dvp, cnp, &out_desc, GNV_CREATE, &attr, NULL, &tvp);
3657 if (hfsmp->hfs_flags & HFS_QUOTAS) {
3709 if (hfs_vget(hfsmp, dcp->c_parentcnid, &ddvp, 0) == 0) {
3734 hfs_end_transaction(hfsmp);
3751 hfs_vgetrsrc(struct hfsmount *hfsmp, struct vnode *vp, struct vnode **rvpp, int can_drop_lock)
3823 lockflags = hfs_systemfile_lock(hfsmp, SFL_CATALOG, HFS_SHARED_LOCK);
3826 error = cat_lookup(hfsmp, &cp->c_desc, 1, (struct cat_desc *)0,
3829 hfs_systemfile_unlock(hfsmp, lockflags);
3851 error = hfs_getnewvnode(hfsmp, dvp, cn.cn_pnbuf ? &cn : NULL,
4259 struct hfsmount *hfsmp;
4261 hfsmp = VTOHFS(ap->a_dvp);
4262 if (hfsmp->hfs_flags & HFS_STANDARD) {