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);