Mercurial > illumos > illumos-gate
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); }