[XFS] Prevent data corruption on extending truncate case from cxfs client
authorEric Sandeen <sandeen@sgi.com>
Wed, 2 Nov 2005 04:07:34 +0000 (15:07 +1100)
committerNathan Scott <nathans@sgi.com>
Wed, 2 Nov 2005 04:07:34 +0000 (15:07 +1100)
SGI-PV: 942439
SGI-Modid: xfs-linux:xfs-kern:200152a

Signed-off-by: Eric Sandeen <sandeen@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
fs/xfs/xfs_vnodeops.c

index 5bf9b2a0b57cf3eaaebb187c2e23bb53a3d38ef7..b564c1b25e5e669feb555e0f50bd6c1abae0ae83 100644 (file)
@@ -626,8 +626,10 @@ xfs_setattr(
         */
        if (mask & XFS_AT_SIZE) {
                code = 0;
-               if (vap->va_size > ip->i_d.di_size)
+               if ((vap->va_size > ip->i_d.di_size) && 
+                   (flags & ATTR_NOSIZETOK) == 0) {
                        code = xfs_igrow_start(ip, vap->va_size, credp);
+               }
                xfs_iunlock(ip, XFS_ILOCK_EXCL);
                if (!code)
                        code = xfs_itruncate_data(ip, vap->va_size);