Home | History | Annotate | Download | only in ffs

Lines Matching defs:oip

203  * Truncate the inode oip to at most length size, freeing the
210 struct inode *oip = VTOI(ovp);
222 struct ufsmount *ump = oip->i_ump;
231 KASSERT(oip->i_size == 0);
246 fs = oip->i_fs;
249 datablocks = DIP(oip, blocks);
250 if (fs->fs_magic == FS_UFS2_MAGIC && oip->i_din2->di_extsize > 0) {
251 extblocks = btodb(ffs_fragroundup(fs, oip->i_din2->di_extsize));
259 (void) chkdq(oip, -extblocks, NOCRED, FORCE);
261 osize = oip->i_din2->di_extsize;
262 oip->i_din2->di_blocks -= extblocks;
263 oip->i_din2->di_extsize = 0;
266 oldblks[i] = oip->i_din2->di_extb[i];
267 oip->i_din2->di_extb[i] = 0;
269 oip->i_flag |= IN_CHANGE;
282 ffs_blkfree(fs, oip->i_devvp, oldblks[i],
283 bsize, oip->i_number);
291 (oip->i_size < ump->um_maxsymlinklen ||
294 memset(SHORTLINK(oip), 0, (size_t)oip->i_size);
295 oip->i_size = 0;
296 DIP_ASSIGN(oip, size, 0);
297 oip->i_flag |= IN_CHANGE | IN_UPDATE;
300 if (oip->i_size == length) {
303 oip->i_flag |= IN_CHANGE | IN_UPDATE;
309 if ((oip->i_flags & SF_SNAPSHOT) != 0)
312 osize = oip->i_size;
351 oip->i_flag |= IN_CHANGE | IN_UPDATE;
352 KASSERT(ovp->v_size == oip->i_size);
383 size = ffs_blksize(fs, oip, lbn);
400 oip->i_size = length;
401 DIP_ASSIGN(oip, size, length);
422 blks[UFS_NDADDR + level] = DIP(oip, ib[level]);
425 DIP_ASSIGN(oip, ib[level], 0);
430 blks[i] = DIP(oip, db[i]);
433 DIP_ASSIGN(oip, db[i], 0);
436 oip->i_flag |= IN_CHANGE | IN_UPDATE;
450 bn = DIP(oip, db[i]);
451 DIP_ASSIGN(oip, db[i], blks[i]);
455 bn = DIP(oip, ib[i]);
456 DIP_ASSIGN(oip, ib[i], blks[UFS_NDADDR + i]);
460 oip->i_size = osize;
461 DIP_ASSIGN(oip, size, osize);
473 bn = ffs_getib(fs, oip, level);
476 oip->i_ump->um_mountp->mnt_wapbl) {
478 oip->i_ump->um_mountp,
487 error = ffs_indirtrunc(oip, indir_lbn[level],
493 oip->i_ump->um_mountp, dcookie);
500 ffs_blkfree(fs, oip->i_devvp, bn,
501 fs->fs_bsize, oip->i_number);
502 DIP_ASSIGN(oip, ib[level], 0);
514 bn = ffs_getdb(fs, oip, i);
518 bsize = ffs_blksize(fs, oip, i);
519 if ((oip->i_ump->um_mountp->mnt_wapbl) &&
522 oip->i_ump->um_mountp,
527 ffs_blkfree(fs, oip->i_devvp, bn, bsize, oip->i_number);
528 DIP_ASSIGN(oip
538 bn = ffs_getdb(fs, oip, lastblock);
546 oldspace = ffs_blksize(fs, oip, lastblock);
547 oip->i_size = length;
548 DIP_ASSIGN(oip, size, length);
549 newspace = ffs_blksize(fs, oip, lastblock);
559 if ((oip->i_ump->um_mountp->mnt_wapbl) &&
562 oip->i_ump->um_mountp, FFS_FSBTODB(fs, bn),
567 ffs_blkfree(fs, oip->i_devvp, bn,
568 oldspace - newspace, oip->i_number);
575 KASSERTMSG((blks[UFS_NDADDR + level] == DIP(oip, ib[level])),
578 (uintmax_t)DIP(oip, ib[level]));
580 KASSERTMSG((blks[i] == DIP(oip, db[i])),
582 (uintmax_t)blks[i], (uintmax_t)DIP(oip, db[i]));
603 oip->i_size = length;
604 DIP_ASSIGN(oip, size, length);
605 DIP_ADD(oip, blocks, -blocksreleased);
607 oip->i_flag |= IN_CHANGE;
610 (void) chkdq(oip, -blocksreleased, NOCRED, 0);
612 KASSERT(ovp->v_type != VREG || ovp->v_size == oip->i_size);