diff options
| -rw-r--r-- | fs/xfs/xfs_vnodeops.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 5bf9b2a0b57c..b564c1b25e5e 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c | |||
| @@ -626,8 +626,10 @@ xfs_setattr( | |||
| 626 | */ | 626 | */ |
| 627 | if (mask & XFS_AT_SIZE) { | 627 | if (mask & XFS_AT_SIZE) { |
| 628 | code = 0; | 628 | code = 0; |
| 629 | if (vap->va_size > ip->i_d.di_size) | 629 | if ((vap->va_size > ip->i_d.di_size) && |
| 630 | (flags & ATTR_NOSIZETOK) == 0) { | ||
| 630 | code = xfs_igrow_start(ip, vap->va_size, credp); | 631 | code = xfs_igrow_start(ip, vap->va_size, credp); |
| 632 | } | ||
| 631 | xfs_iunlock(ip, XFS_ILOCK_EXCL); | 633 | xfs_iunlock(ip, XFS_ILOCK_EXCL); |
| 632 | if (!code) | 634 | if (!code) |
| 633 | code = xfs_itruncate_data(ip, vap->va_size); | 635 | code = xfs_itruncate_data(ip, vap->va_size); |
