aboutsummaryrefslogtreecommitdiffstats
path: root/fs/logfs/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/logfs/file.c')
-rw-r--r--fs/logfs/file.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/fs/logfs/file.c b/fs/logfs/file.c
index abe1cafbd4c2..23b4d03bbd26 100644
--- a/fs/logfs/file.c
+++ b/fs/logfs/file.c
@@ -232,15 +232,19 @@ static int logfs_setattr(struct dentry *dentry, struct iattr *attr)
232 struct inode *inode = dentry->d_inode; 232 struct inode *inode = dentry->d_inode;
233 int err = 0; 233 int err = 0;
234 234
235 if (attr->ia_valid & ATTR_SIZE) 235 if (attr->ia_valid & ATTR_SIZE) {
236 err = logfs_truncate(inode, attr->ia_size); 236 err = logfs_truncate(inode, attr->ia_size);
237 attr->ia_valid &= ~ATTR_SIZE; 237 if (err)
238 return err;
239 }
238 240
239 if (!err) 241 err = inode_change_ok(inode, attr);
240 err = inode_change_ok(inode, attr); 242 if (err)
241 if (!err) 243 return err;
242 err = inode_setattr(inode, attr); 244
243 return err; 245 setattr_copy(inode, attr);
246 mark_inode_dirty(inode);
247 return 0;
244} 248}
245 249
246const struct inode_operations logfs_reg_iops = { 250const struct inode_operations logfs_reg_iops = {