Changeset View
Changeset View
Standalone View
Standalone View
sys/ufs/ffs/ffs_inode.c
Show First 20 Lines • Show All 323 Lines • ▼ Show 20 Lines | #endif | ||||
ffs_blkfree(ump, fs, ITODEVVP(ip), oldblks[i], | ffs_blkfree(ump, fs, ITODEVVP(ip), oldblks[i], | ||||
sblksize(fs, osize, i), ip->i_number, | sblksize(fs, osize, i), ip->i_number, | ||||
vp->v_type, NULL, SINGLETON_KEY); | vp->v_type, NULL, SINGLETON_KEY); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
if ((flags & IO_NORMAL) == 0) | if ((flags & IO_NORMAL) == 0) | ||||
return (0); | return (0); | ||||
if (vp->v_type == VLNK && ip->i_size < vp->v_mount->mnt_maxsymlinklen) { | if (vp->v_type == VLNK && ip->i_size < ump->um_maxsymlinklen) { | ||||
#ifdef INVARIANTS | #ifdef INVARIANTS | ||||
if (length != 0) | if (length != 0) | ||||
panic("ffs_truncate: partial truncate of symlink"); | panic("ffs_truncate: partial truncate of symlink"); | ||||
#endif | #endif | ||||
bzero(SHORTLINK(ip), (u_int)ip->i_size); | bzero(SHORTLINK(ip), (u_int)ip->i_size); | ||||
ip->i_size = 0; | ip->i_size = 0; | ||||
DIP_SET(ip, i_size, 0); | DIP_SET(ip, i_size, 0); | ||||
UFS_INODE_SET_FLAG(ip, IN_SIZEMOD | IN_CHANGE | IN_UPDATE); | UFS_INODE_SET_FLAG(ip, IN_SIZEMOD | IN_CHANGE | IN_UPDATE); | ||||
▲ Show 20 Lines • Show All 475 Lines • Show Last 20 Lines |