Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
* the lower level.
*/
if (ia->ia_valid & ATTR_SIZE) {
- size = i_size_read(inode);
- if (ia->ia_size < size || (ia->ia_size > size &&
- inode->i_sb->s_maxbytes < lower_inode->i_sb->s_maxbytes)) {
- err = vmtruncate(inode, ia->ia_size);
- if (err)
- goto out;
- }
+ err = inode_newsize_ok(inode, ia->ia_size);
+ if (err)
+ goto out;
+ truncate_setsize(inode, ia->ia_size);
}
/* notify the (possibly copied-up) lower inode */