changeset 4144:068f395736ad

6465105 ZFS does not update timestamps upon the creat() of an existing file Contributed by Jeremy Teo <white.wristband@gmail.com>
author peteh
date Tue, 01 May 2007 01:52:38 -0700
parents e96717d2a371
children 90dc07a3821d
files usr/src/uts/common/fs/zfs/zfs_vnops.c usr/src/uts/common/fs/zfs/zfs_znode.c
diffstat 2 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/fs/zfs/zfs_vnops.c	Tue May 01 10:13:47 2007 -0700
+++ b/usr/src/uts/common/fs/zfs/zfs_vnops.c	Tue May 01 01:52:38 2007 -0700
@@ -23,6 +23,8 @@
  * Use is subject to license terms.
  */
 
+/* Portions Copyright 2007 Jeremy Teo */
+
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
 #include <sys/types.h>
@@ -1153,7 +1155,6 @@
 		 * Truncate regular files if requested.
 		 */
 		if ((ZTOV(zp)->v_type == VREG) &&
-		    (zp->z_phys->zp_size != 0) &&
 		    (vap->va_mask & AT_SIZE) && (vap->va_size == 0)) {
 			error = zfs_freesp(zp, 0, 0, mode, TRUE);
 			if (error == ERESTART &&
--- a/usr/src/uts/common/fs/zfs/zfs_znode.c	Tue May 01 10:13:47 2007 -0700
+++ b/usr/src/uts/common/fs/zfs/zfs_znode.c	Tue May 01 01:52:38 2007 -0700
@@ -23,6 +23,8 @@
  * Use is subject to license terms.
  */
 
+/* Portions Copyright 2007 Jeremy Teo */
+
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
 #ifdef _KERNEL
@@ -931,7 +933,7 @@
 	 * Nothing to do if file already at desired length.
 	 */
 	size = zp->z_phys->zp_size;
-	if (len == 0 && size == off) {
+	if (len == 0 && size == off && off != 0) {
 		zfs_range_unlock(rl);
 		return (0);
 	}