Print this page
OS-5148 ftruncate at offset should emit proper events
Reviewed by: Bryan Cantrill <bryan@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

*** 567,579 **** } if (error = ud_itrunc(ip, vap->va_size, 0, cr)) { goto update_inode; } ! if (vap->va_size == 0) vnevent_truncate(vp, ct); } /* * Change file access or modified times. */ if (mask & (AT_ATIME|AT_MTIME)) { mutex_enter(&ip->i_tlock); --- 567,582 ---- } if (error = ud_itrunc(ip, vap->va_size, 0, cr)) { goto update_inode; } ! if (vap->va_size == 0) { vnevent_truncate(vp, ct); + } else { + vnevent_resize(vp, ct); } + } /* * Change file access or modified times. */ if (mask & (AT_ATIME|AT_MTIME)) { mutex_enter(&ip->i_tlock);
*** 1647,1659 **** if (cmd != F_FREESP) { error = EINVAL; } else if ((error = convoff(vp, bfp, 0, offset)) == 0) { error = ud_freesp(vp, bfp, flag, cr); ! if (error == 0 && bfp->l_start == 0) vnevent_truncate(vp, ct); } return (error); } /* ARGSUSED */ --- 1650,1667 ---- if (cmd != F_FREESP) { error = EINVAL; } else if ((error = convoff(vp, bfp, 0, offset)) == 0) { error = ud_freesp(vp, bfp, flag, cr); ! if (error == 0) { ! if (bfp->l_start == 0) { vnevent_truncate(vp, ct); + } else { + vnevent_resize(vp, ct); } + } + } return (error); } /* ARGSUSED */