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,11 +19,11 @@
  * CDDL HEADER END
  */
 
 /*
  * Copyright (c) 1984, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2015, Joyent, Inc.
+ * Copyright 2016, Joyent, Inc.
  */
 
 /*      Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T     */
 /*        All Rights Reserved   */
 

@@ -2191,13 +2191,18 @@
                 if (error) {
                         rw_enter(&ip->i_contents, RW_WRITER);
                         goto update_inode;
                 }
 
-                if (error == 0 && vap->va_size)
+                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,16 +3729,11 @@
             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);
+                vnevent_rename_dest_dir(tdvp, ITOV(sip), tnm, ct);
         }
 
 errout:
         if (slot.fbp)
                 fbrelse(slot.fbp, S_OTHER);

@@ -4476,12 +4476,17 @@
                             ULOCKFS_SPACE_MASK);
                         if (error)
                                 return (error);
                         error = ufs_freesp(vp, bfp, flag, cr);
 
-                        if (error == 0 && bfp->l_start == 0)
+                        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);