Lines Matching defs:vp

90 static int  hfs_minorupdate(struct vnode *vp);
91 static int do_hfs_truncate(struct vnode *vp, off_t length, int flags, int skip, vfs_context_t context);
118 struct vnode *vp = ap->a_vp;
132 if (!vnode_isreg(vp)) {
134 if (vnode_isdir(vp))
153 if (VNODE_IS_RSRC(vp)) {
154 if (hfs_hides_rsrc(ap->a_context, VTOC(vp), 1)) { /* 1 == don't take the cnode lock */
159 int compressed = hfs_file_is_compressed(VTOC(vp), 1); /* 1 == don't take the cnode lock */
161 retval = decmpfs_read_compressed(ap, &compressed, VTOCMP(vp));
165 VTOC(vp)->c_touch_acctime = TRUE;
168 if (VTOHFS(vp)->hfc_stage == HFC_RECORDING) {
169 VTOF(vp)->ff_bytesread = 0;
176 } else if ((VTOC(vp)->c_bsdflags & UF_COMPRESSED)) {
179 error = check_for_dataless_file(vp, NAMESPACE_HANDLER_READ_OP);
188 cp = VTOC(vp);
189 fp = VTOF(vp);
190 hfsmp = VTOHFS(vp);
193 if ((retval = cp_handle_vnop (vp, CP_READ_ACCESS, ap->a_ioflag)) != 0) {
233 retval = cluster_read(vp, uio, filesize, ap->a_ioflag |io_throttle);
294 struct vnode *vp = ap->a_vp;
313 time_t orig_ctime=VTOC(vp)->c_ctime;
320 if ( hfs_file_is_compressed(VTOC(vp), 1) ) { /* 1 == don't take the cnode lock */
321 int state = decmpfs_cnode_get_vnode_state(VTOCMP(vp));
335 } else if ((VTOC(vp)->c_bsdflags & UF_COMPRESSED)) {
338 error = check_for_dataless_file(vp, NAMESPACE_HANDLER_WRITE_OP);
345 check_for_tracked_file(vp, orig_ctime, NAMESPACE_HANDLER_WRITE_OP, uio);
364 if (!vnode_isreg(vp))
367 cp = VTOC(vp);
368 fp = VTOF(vp);
369 hfsmp = VTOHFS(vp);
372 if ((retval = cp_handle_vnop (vp, CP_WRITE_ACCESS, 0)) != 0) {
470 if ( (retval = hfs_lock(VTOC(vp), HFS_EXCLUSIVE_LOCK, HFS_LOCK_DEFAULT))) {
546 (void) hfs_update(vp, TRUE);
639 retval = cluster_write(vp, (uio_t) 0,
712 ubc_setsize(vp, filesize);
714 retval = cluster_write(vp, uio, fp->ff_size, filesize, zero_off,
743 ubc_setsize(vp, offset);
750 ubc_setsize(vp, origFileSize);
772 if (flush_cache_on_write && ((ioflag & IO_NOCACHE) || vnode_isnocache(vp))) {
802 (void)hfs_truncate(vp, origFileSize, ioflag & IO_SYNC,
809 retval = hfs_update(vp, TRUE);
1205 struct vnode *vp;
1208 myErr = hfs_vget(hfsmp, thisNodeID, &vp, 0, 0);
1214 thisNodeID = VTOC(vp)->c_parentcnid;
1216 hfs_unlock(VTOC(vp));
1218 if (vnode_vtype(vp) == VDIR) {
1219 myErr = vnode_authorize(vp, NULL, (KAUTH_VNODE_SEARCH | KAUTH_VNODE_LIST_DIRECTORY), my_context);
1221 myErr = vnode_authorize(vp, NULL, KAUTH_VNODE_READ_DATA, my_context);
1224 vnode_put(vp);
1276 do_bulk_access_check(struct hfsmount *hfsmp, struct vnode *vp,
1312 struct cnode *skip_cp = VTOC(vp);
1587 struct vnode * vp = ap->a_vp;
1588 struct hfsmount *hfsmp = VTOHFS(vp);
1603 compressed = hfs_file_is_compressed(VTOC(vp), 0);
1605 if (VNODE_IS_RSRC(vp)) {
1609 decmpfs_error = hfs_uncompressed_size_of_compressed_file(NULL, vp, 0, &uncompressed_size, 0);
1624 if ((error = cp_handle_vnop(vp, CP_WRITE_ACCESS, 0)) != 0) {
1648 if (!vnode_isvroot(vp)) {
1680 cp = VTOC(vp);
1773 if (need_fsevent(FSE_STAT_CHANGED, vp)) {
1774 add_fsevent(FSE_STAT_CHANGED, context, FSE_ARG_VNODE, vp, FSE_ARG_DONE);
1813 if (!vnode_isvroot(vp)) {
1838 if (!vnode_isvroot(vp)) {
1858 if (!vnode_isvroot(vp)) {
1881 if (vnode_vfsisrdonly(vp)) {
1889 if (!vnode_isvroot(vp)) {
1950 if (vnode_mount(vp) == vnode_mount(di_vp)) {
2044 if (vnode_vfsisrdonly(vp)) {
2084 mp = vnode_mount(vp);
2100 vfsp = vfs_statfs(vnode_mount(vp));
2121 return do_bulk_access_check(hfsmp, vp, ap, size, context);
2137 return do_bulk_access_check(hfsmp, vp, ap, size, context);
2191 cp = VTOC(vp);
2229 cp = VTOC(vp);
2274 cp = VTOC(vp);
2317 cp = VTOC(vp);
2328 if (vnode_isinuse(vp, 1)) {
2350 error = hfs_truncate(vp, 0, IO_NDELAY, HFS_TRUNCATE_SKIPTIMES,
2378 decmpfs_cnode *dp = VTOCMP (vp);
2402 error = hfs_set_backingstore (vp, 1);
2405 error = hfs_set_backingstore (vp, 0);
2417 error = hfs_is_backingstore (vp, data);
2428 error = hfs_lock(VTOC(vp), HFS_EXCLUSIVE_LOCK, HFS_LOCK_DEFAULT);
2430 error = hfs_fsync(vp, MNT_WAIT, TRUE, p);
2431 hfs_unlock(VTOC(vp));
2441 if (!vnode_isreg(vp))
2444 error = hfs_lock(VTOC(vp), HFS_EXCLUSIVE_LOCK, HFS_LOCK_DEFAULT);
2446 cp = VTOC(vp);
2452 error = is_file_clean(vp, VTOF(vp)->ff_size);
2463 if (!vnode_isreg(vp))
2467 fp = VTOF(vp);
2470 hfs_lock_truncate(VTOC(vp), HFS_EXCLUSIVE_LOCK, HFS_LOCK_DEFAULT);
2486 error = advisory_read(vp, fp->ff_size, ra->ra_offset, ra->ra_count);
2489 hfs_unlock_truncate(VTOC(vp), HFS_LOCK_DEFAULT);
2496 *(user_time_t *)(ap->a_data) = (user_time_t) (to_bsd_time(VTOVCB(vp)->localCreateDate));
2499 *(user32_time_t *)(ap->a_data) = (user32_time_t) (to_bsd_time(VTOVCB(vp)->localCreateDate));
2555 if (!vnode_isvroot(vp))
2569 if (!vnode_isvroot(vp))
2587 !vnode_isvroot(vp)) {
2600 if (vp == NULLVP)
2616 struct cnode *cp = VTOC(vp);
2782 hfs_bmap(struct vnode *vp, daddr_t bn, struct vnode **vpp, daddr64_t *bnp, unsigned int *runp)
2784 struct filefork *fp = VTOF(vp);
2785 struct hfsmount *hfsmp = VTOHFS(vp);
2802 logBlockSize = GetLogicalBlockSize(vp);
2904 struct vnode *vp = ap->a_vp;
2918 if (VNODE_IS_RSRC(vp)) {
2921 if ( hfs_file_is_compressed(VTOC(vp), 1) ) { /* 1 == don't take the cnode lock */
2922 int state = decmpfs_cnode_get_vnode_state(VTOCMP(vp));
2938 if (vnode_isdir(vp)) {
2949 if ( !vnode_issystem(vp) && !vnode_islnk(vp) && !vnode_isswap(vp)) {
2950 if (VTOC(vp)->c_lockowner != current_thread()) {
2951 hfs_lock(VTOC(vp), HFS_EXCLUSIVE_LOCK, HFS_LOCK_ALLOW_NOEXISTS);
2955 hfsmp = VTOHFS(vp);
2956 cp = VTOC(vp);
2957 fp = VTOF(vp);
3021 (void) hfs_update(vp, TRUE);
3039 (void) hfs_update(vp, TRUE);
3169 vnode_t vp = buf_vnode(bp);
3173 if (VTOC(vp)->c_flag & C_SSD_STATIC) {
3178 if (VTOC(vp)->c_flag & C_SSD_GREEDY_MODE) {
3183 if (VTOC(vp)->c_flag & C_IO_ISOCHRONOUS) {
3191 ((cp = cp_get_protected_cnode(vp)) != NULL)) {
3223 if ((error = cp_handle_vnop(vp, io_op, 0)) != 0) {
3252 error = buf_strategy(VTOHFS(vp)->hfs_devvp, ap);
3258 hfs_minorupdate(struct vnode *vp) {
3259 struct cnode *cp = VTOC(vp);
3269 do_hfs_truncate(struct vnode *vp, off_t length, int flags, int truncateflags, vfs_context_t context)
3271 register struct cnode *cp = VTOC(vp);
3272 struct filefork *fp = VTOF(vp);
3285 blksize = VTOVCB(vp)->blockSize;
3299 if ((!ISHFSPLUS(VTOVCB(vp))) && (length > (off_t)MAXHFSFILESIZE))
3302 hfsmp = VTOHFS(vp);
3373 retval = MacToVFSError(ExtendFileC(VTOVCB(vp),
3392 (void) hfs_minorupdate(vp);
3395 (void) hfs_update(vp, TRUE);
3411 if (vnode_isswap(vp))
3414 if (UBCINFOEXISTS(vp) && (vnode_issystem(vp) == 0) && retval == E_NONE) {
3435 retval = cluster_write(vp, (struct uio *) 0, fp->ff_size, zero_limit,
3469 if (ISSET(flags, IO_NOZEROFILL) && vnode_isswap(vp)) {
3520 retval = MacToVFSError(TruncateFileC(VTOVCB(vp), (FCB*)fp, length, 0,
3530 (void) hfs_minorupdate(vp);
3533 (void) hfs_update(vp, TRUE);
3563 retval = hfs_minorupdate(vp);
3579 retval = hfs_update(vp, MNT_WAIT);
3607 hfs_prepare_release_storage (struct hfsmount *hfsmp, struct vnode *vp) {
3609 struct filefork *fp = VTOF(vp);
3610 struct cnode *cp = VTOC(vp);
3616 if (vnode_isdir(vp)) {
3627 ubc_setsize(vp, 0);
3789 errno_t hfs_ubc_setsize(vnode_t vp, off_t len, bool have_cnode_lock)
3800 error = ubc_setsize_ex(vp, len, UBC_SETSIZE_NO_FS_REENTRY);
3802 cnode_t *cp = VTOC(vp);
3813 error = ubc_setsize_ex(vp, len, 0);
3817 error = ubc_setsize_ex(vp, len, 0);
3827 hfs_truncate(struct vnode *vp, off_t length, int flags,
3830 struct filefork *fp = VTOF(vp);
3835 struct cnode *cp = VTOC(vp);
3838 if (vnode_isdir(vp)) {
3842 if (vnode_isswap(vp) && length && !ISSET(flags, IO_NOAUTH)) {
3846 blksize = VTOVCB(vp)->blockSize;
3852 error = hfs_ubc_setsize(vp, length, caller_has_cnode_lock);
3874 error = do_hfs_truncate(vp, filebytes, flags, truncateflags, context);
3886 error = do_hfs_truncate(vp, filebytes, flags, truncateflags, context);
3892 error = do_hfs_truncate(vp, length, flags, truncateflags, context);
3895 if (VTOHFS(vp)->hfc_stage == HFC_RECORDING) {
3903 errno_t err2 = hfs_ubc_setsize(vp, fp->ff_size, caller_has_cnode_lock);
3924 struct vnode *vp = ap->a_vp;
3944 if (!vnode_isreg(vp))
3949 cp = VTOC(vp);
3951 orig_ctime = VTOC(vp)->c_ctime;
3953 check_for_tracked_file(vp, orig_ctime, ap->a_length == 0 ? NAMESPACE_HANDLER_TRUNCATE_OP|NAMESPACE_HANDLER_DELETE_OP : NAMESPACE_HANDLER_TRUNCATE_OP, NULL);
3961 fp = VTOF(vp);
3962 hfsmp = VTOHFS(vp);
3963 vcb = VTOVCB(vp);
3992 blockHint = ap->a_offset / VTOVCB(vp)->blockSize;
4081 (void) hfs_update(vp, TRUE);
4120 retval = hfs_truncate(vp, length, 0, 0, ap->a_context);
4136 hfs_ubc_setsize(vp, fp->ff_size, true);
4143 retval2 = hfs_update(vp, MNT_WAIT);
4171 vnode_t vp;
4187 vp = ap->a_vp;
4188 cp = VTOC(vp);
4189 fp = VTOF(vp);
4192 if ((error = cp_handle_vnop(vp, CP_READ_ACCESS | CP_WRITE_ACCESS, 0)) != 0) {
4204 ubc_create_upl (vp, ap->a_f_offset, ap->a_size, &upl, &pl,
4225 error = cluster_pagein(vp, ap->a_pl, ap->a_pl_offset, ap->a_f_offset,
4275 if (vfs_isforce(vp->v_mount)) {
4286 kret = ubc_create_upl(vp, ap->a_f_offset, ap->a_size, &upl, &pl, UPL_UBC_PAGEIN | UPL_RET_ONLY_ABSENT);
4358 if (VNODE_IS_RSRC(vp)) {
4361 int compressed = hfs_file_is_compressed(VTOC(vp), 1); /* 1 == don't take the cnode lock */
4381 error = decmpfs_pagein_compressed(ap, &compressed, VTOCMP(vp));
4391 VTOC(vp)->c_touch_acctime = TRUE;
4394 if (VTOHFS(vp)->hfc_stage == HFC_RECORDING) {
4453 error = cluster_pagein(vp, upl, offset, f_offset, xsize, (off_t)fp->ff_size, ap->a_flags);
4458 if ( !vnode_isswap(vp) && VTOHFS(vp)->hfc_stage == HFC_RECORDING && error == 0) {
4476 if (cp->c_atime < VTOHFS(vp)->hfc_timebase) {
4524 vnode_t vp = ap->a_vp;
4536 cp = VTOC(vp);
4537 fp = VTOF(vp);
4588 kret = ubc_create_upl(vp, ap->a_f_offset, ap->a_size, &upl, &pl, request_flags);
4690 if (!vnode_isswap(vp)) {
4726 if ((error = cluster_pageout(vp, upl, offset, f_offset,
4742 if (!vnode_isswap(vp)) {
4775 retval = cluster_pageout(vp, upl, a_pl_offset, ap->a_f_offset,
4784 if (retval == 0 && (ubc_is_mapped_writable(vp)
4789 bool mapped_writable = ubc_is_mapped_writable(vp);
4801 hfs_incr_gencount(VTOC(vp));
4838 register struct vnode *vp = buf_vnode(bp);
4842 if ((VTOC(vp)->c_fileid == kHFSExtentsFileID) ||
4843 (VTOC(vp)->c_fileid == kHFSCatalogFileID) ||
4844 (VTOC(vp)->c_fileid == kHFSAttributesFileID) ||
4845 (vp == VTOHFS(vp)->hfc_filevp)) {
4864 retval = hfs_swap_BTNode (&block, vp, kSwapBTNodeHostToBig, false);
4873 if (VTOHFS(vp)->jnl) {
4918 hfs_relocate(struct vnode *vp, u_int32_t blockHint, kauth_cred_t cred,
4938 vnodetype = vnode_vtype(vp);
4944 hfsmp = VTOHFS(vp);
4949 cp = VTOC(vp);
4950 fp = VTOF(vp);
4982 //if (vnodetype == VREG && !vnode_issystem(vp)) {
4983 // retval = hfs_fsync(vp, MNT_WAIT, 0, p);
4988 if (!vnode_issystem(vp) && (vnodetype != VLNK)) {
5071 } else if (vnode_name(vp) != NULL) {
5072 filestr = vnode_name(vp);
5103 else if (vnode_issystem(vp))
5104 retval = hfs_clonesysfile(vp, headblks, datablks, blksize, cred, p);
5106 retval = hfs_clonefile(vp, headblks, datablks, blksize);
5142 (void) hfs_update(vp, MNT_WAIT);
5189 hfs_clonefile(struct vnode *vp, int blkstart, int blkcnt, int blksize)
5205 hfs_unlock(VTOC(vp));
5208 if ((error = cp_handle_vnop(vp, CP_WRITE_ACCESS, 0)) != 0) {
5209 hfs_lock(VTOC(vp), HFS_EXCLUSIVE_LOCK, HFS_LOCK_ALLOW_NOEXISTS);
5215 hfs_lock(VTOC(vp), HFS_EXCLUSIVE_LOCK, HFS_LOCK_ALLOW_NOEXISTS);
5227 error = cluster_read(vp, auio, copysize, IO_NOCACHE);
5241 error = cluster_write(vp, auio, writebase + offset,
5267 ubc_msync(vp, writebase, writebase + offset, NULL, UBC_INVALIDATE | UBC_PUSHDIRTY);
5278 hfs_lock(VTOC(vp), HFS_EXCLUSIVE_LOCK, HFS_LOCK_ALLOW_NOEXISTS);
5287 hfs_clonesysfile(struct vnode *vp, int blkstart, int blkcnt, int blksize,
5304 iosize = GetLogicalBlockSize(vp);
5321 error = (int)buf_meta_bread(vp, blk, iosize, cred, &bp);
5344 bp = buf_getblk(vp, start_blk + blkno, iosize, 0, 0, BLK_META);
5365 error = hfs_fsync(vp, MNT_WAIT, 0, p);