diff options
Diffstat (limited to 'fs/ext4/inode.c')
-rw-r--r-- | fs/ext4/inode.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 6a002a6d0624..eaa22ae9f1f6 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
@@ -170,6 +170,9 @@ void ext4_delete_inode(struct inode *inode) | |||
170 | handle_t *handle; | 170 | handle_t *handle; |
171 | int err; | 171 | int err; |
172 | 172 | ||
173 | if (!is_bad_inode(inode)) | ||
174 | vfs_dq_init(inode); | ||
175 | |||
173 | if (ext4_should_order_data(inode)) | 176 | if (ext4_should_order_data(inode)) |
174 | ext4_begin_ordered_truncate(inode, 0); | 177 | ext4_begin_ordered_truncate(inode, 0); |
175 | truncate_inode_pages(&inode->i_data, 0); | 178 | truncate_inode_pages(&inode->i_data, 0); |
@@ -5251,6 +5254,8 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr) | |||
5251 | if (error) | 5254 | if (error) |
5252 | return error; | 5255 | return error; |
5253 | 5256 | ||
5257 | if (ia_valid & ATTR_SIZE) | ||
5258 | vfs_dq_init(inode); | ||
5254 | if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) || | 5259 | if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) || |
5255 | (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) { | 5260 | (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) { |
5256 | handle_t *handle; | 5261 | handle_t *handle; |