Lines Matching defs:dep
333 msdosfs_deupdat(struct denode *dep, int waitfor)
336 return (msdosfs_update(DETOV(dep), NULL, NULL,
341 * Truncate the file described by dep to the length specified by length.
344 msdosfs_detrunc(struct denode *dep, u_long length, int flags, kauth_cred_t cred)
352 int isadir = dep->de_Attributes & ATTR_DIRECTORY;
354 struct msdosfsmount *pmp = dep->de_pmp;
357 printf("detrunc(): file %s, length %lu, flags %x\n", dep->de_Name, length, flags);
368 if ((DETOV(dep)->v_vflag & VV_ROOT) && !FAT32(pmp)) {
370 dep->de_dirclust, dep->de_diroffset);
374 uvm_vnp_setsize(DETOV(dep), length);
376 if (dep->de_FileSize < length)
377 return (msdosfs_deextend(dep, length, cred));
390 chaintofree = dep->de_StartCluster;
391 dep->de_StartCluster = 0;
394 error = msdosfs_pcbmap(dep, lastblock, 0, &eofentry, 0);
426 ubc_zerorange(&DETOV(dep)->v_uobj, length,
428 UBC_VNODE_FLAGS(DETOV(dep)));
436 dep->de_FileSize = length;
438 dep->de_flag |= DE_UPDATE|DE_MODIFIED;
439 vtruncbuf(DETOV(dep), lastblock + 1, 0, 0);
440 allerror = msdosfs_deupdat(dep, 1);
446 msdosfs_fc_purge(dep, lastblock + 1);
461 fc_setcache(dep, FC_LASTFC, de_cluster(pmp, length - 1),
476 * Extend the file described by dep to length specified by length.
479 msdosfs_deextend(struct denode *dep, u_long length, kauth_cred_t cred)
481 struct msdosfsmount *pmp = dep->de_pmp;
488 if ((DETOV(dep)->v_vflag & VV_ROOT) && !FAT32(pmp))
494 if (dep->de_Attributes & ATTR_DIRECTORY)
497 if (length <= dep->de_FileSize)
503 count = de_clcount(pmp, length) - de_clcount(pmp, dep->de_FileSize);
507 error = msdosfs_extendfile(dep, count, NULL, NULL, DE_CLEAR);
510 (void) msdosfs_detrunc(dep, dep->de_FileSize, 0, cred);
520 osize = dep->de_FileSize;
521 dep->de_FileSize = length;
522 uvm_vnp_setwritesize(DETOV(dep), (voff_t)dep->de_FileSize);
523 dep->de_flag |= DE_UPDATE|DE_MODIFIED;
524 ubc_zerorange(&DETOV(dep)->v_uobj, (off_t)osize,
525 (size_t)(round_page(dep->de_FileSize) - osize),
526 UBC_VNODE_FLAGS(DETOV(dep)));
527 uvm_vnp_setsize(DETOV(dep), (voff_t)dep->de_FileSize);
528 return (msdosfs_deupdat(dep, 1));
538 struct denode *dep = VTODE(vp);
543 printf("msdosfs_reclaim(): dep %p, file %s, refcnt %ld\n",
544 dep, dep->de_Name, dep->de_refcnt);
550 if (dep->de_devvp) {
551 vrele(dep->de_devvp);
552 dep->de_devvp = 0;
555 dep->de_flag = 0;
564 pool_put(&msdosfs_denode_pool, dep);
576 struct denode *dep = VTODE(vp);
580 printf("msdosfs_inactive(): dep %p, de_Name[0] %x\n", dep, dep->de_Name[0]);
586 if (dep->de_Name[0] == SLOT_DELETED)
595 printf("msdosfs_inactive(): dep %p, refcnt %ld, mntflag %x %s\n",
596 dep, dep->de_refcnt, vp->v_mount->mnt_flag,
599 if (dep->de_refcnt <= 0 && (vp->v_mount->mnt_flag & MNT_RDONLY) == 0) {
600 if (dep->de_FileSize != 0) {
601 error = msdosfs_detrunc(dep, (u_long)0, 0, NOCRED);
603 dep->de_Name[0] = SLOT_DELETED;
604 msdosfs_fh_remove(dep->de_pmp,
605 dep->de_dirclust, dep->de_diroffset);
607 msdosfs_deupdat(dep, 0);
615 vrefcnt(vp), dep->de_Name[0]);
617 *ap->a_recycle = (dep->de_Name[0] == SLOT_DELETED);
641 struct denode *dep = VTODE(vp);
643 dep->de_flag |= mask;