File tree Expand file tree Collapse file tree 1 file changed +4
-0
lines changed Expand file tree Collapse file tree 1 file changed +4
-0
lines changed Original file line number Diff line number Diff line change @@ -5444,6 +5444,7 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr)
54445444 if (attr -> ia_valid & ATTR_SIZE ) {
54455445 handle_t * handle ;
54465446 loff_t oldsize = inode -> i_size ;
5447+ loff_t old_disksize ;
54475448 int shrink = (attr -> ia_size < inode -> i_size );
54485449
54495450 if (!(ext4_test_inode_flag (inode , EXT4_INODE_EXTENTS ))) {
@@ -5517,6 +5518,7 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr)
55175518 inode -> i_sb -> s_blocksize_bits );
55185519
55195520 down_write (& EXT4_I (inode )-> i_data_sem );
5521+ old_disksize = EXT4_I (inode )-> i_disksize ;
55205522 EXT4_I (inode )-> i_disksize = attr -> ia_size ;
55215523 rc = ext4_mark_inode_dirty (handle , inode );
55225524 if (!error )
@@ -5528,6 +5530,8 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr)
55285530 */
55295531 if (!error )
55305532 i_size_write (inode , attr -> ia_size );
5533+ else
5534+ EXT4_I (inode )-> i_disksize = old_disksize ;
55315535 up_write (& EXT4_I (inode )-> i_data_sem );
55325536 ext4_journal_stop (handle );
55335537 if (error )
You can’t perform that action at this time.
0 commit comments