|
@@ -1294,7 +1294,8 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
|
|
|
if (new_isize != cur_isize) {
|
|
|
/* Do we perhaps have any outstanding writes, or has
|
|
|
* the file grown beyond our last write? */
|
|
|
- if (nfsi->npages == 0 || new_isize > cur_isize) {
|
|
|
+ if ((nfsi->npages == 0 && !test_bit(NFS_INO_LAYOUTCOMMIT, &nfsi->flags)) ||
|
|
|
+ new_isize > cur_isize) {
|
|
|
i_size_write(inode, new_isize);
|
|
|
invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA;
|
|
|
}
|