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>
OS-5291 lxbrand inotify02 LTP regression
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
OS-3294 add support for inotify
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>

*** 19,29 **** * CDDL HEADER END */ /* * Copyright (c) 1984, 2010, Oracle and/or its affiliates. All rights reserved. ! * Copyright 2015, Joyent, Inc. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ --- 19,29 ---- * CDDL HEADER END */ /* * Copyright (c) 1984, 2010, Oracle and/or its affiliates. All rights reserved. ! * Copyright 2016, Joyent, Inc. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */
*** 2191,2203 **** if (error) { rw_enter(&ip->i_contents, RW_WRITER); goto update_inode; } ! if (error == 0 && vap->va_size) vnevent_truncate(vp, ct); } if (ulp) { trans_size = (int)TOP_SETATTR_SIZE(ip); TRANS_BEGIN_CSYNC(ufsvfsp, issync, TOP_SETATTR, trans_size); ++dotrans; --- 2191,2208 ---- if (error) { rw_enter(&ip->i_contents, RW_WRITER); goto update_inode; } ! if (error == 0) { ! if (vap->va_size) { vnevent_truncate(vp, ct); + } else { + vnevent_resize(vp, ct); } + } + } if (ulp) { trans_size = (int)TOP_SETATTR_SIZE(ip); TRANS_BEGIN_CSYNC(ufsvfsp, issync, TOP_SETATTR, trans_size); ++dotrans;
*** 3724,3739 **** DR_RENAME, cr)) == ENOENT) error = 0; if (error == 0) { vnevent_rename_src(ITOV(sip), sdvp, snm, ct); ! /* ! * Notify the target directory of the rename event ! * if source and target directories are not the same. ! */ ! if (sdvp != tdvp) ! vnevent_rename_dest_dir(tdvp, ct); } errout: if (slot.fbp) fbrelse(slot.fbp, S_OTHER); --- 3729,3739 ---- DR_RENAME, cr)) == ENOENT) error = 0; if (error == 0) { vnevent_rename_src(ITOV(sip), sdvp, snm, ct); ! vnevent_rename_dest_dir(tdvp, ITOV(sip), tnm, ct); } errout: if (slot.fbp) fbrelse(slot.fbp, S_OTHER);
*** 4476,4487 **** ULOCKFS_SPACE_MASK); if (error) return (error); error = ufs_freesp(vp, bfp, flag, cr); ! if (error == 0 && bfp->l_start == 0) vnevent_truncate(vp, ct); } else if (cmd == F_ALLOCSP) { error = ufs_lockfs_begin(ufsvfsp, &ulp, ULOCKFS_FALLOCATE_MASK); if (error) return (error); --- 4476,4492 ---- ULOCKFS_SPACE_MASK); if (error) return (error); error = ufs_freesp(vp, bfp, flag, cr); ! if (error == 0) { ! if (bfp->l_start == 0) { vnevent_truncate(vp, ct); + } else { + vnevent_resize(vp, ct); + } + } } else if (cmd == F_ALLOCSP) { error = ufs_lockfs_begin(ufsvfsp, &ulp, ULOCKFS_FALLOCATE_MASK); if (error) return (error);