|
@@ -254,6 +254,12 @@ static int hfsplus_setattr(struct dentry *dentry, struct iattr *attr)
|
|
if ((attr->ia_valid & ATTR_SIZE) &&
|
|
if ((attr->ia_valid & ATTR_SIZE) &&
|
|
attr->ia_size != i_size_read(inode)) {
|
|
attr->ia_size != i_size_read(inode)) {
|
|
inode_dio_wait(inode);
|
|
inode_dio_wait(inode);
|
|
|
|
+ if (attr->ia_size > inode->i_size) {
|
|
|
|
+ error = generic_cont_expand_simple(inode,
|
|
|
|
+ attr->ia_size);
|
|
|
|
+ if (error)
|
|
|
|
+ return error;
|
|
|
|
+ }
|
|
truncate_setsize(inode, attr->ia_size);
|
|
truncate_setsize(inode, attr->ia_size);
|
|
hfsplus_file_truncate(inode);
|
|
hfsplus_file_truncate(inode);
|
|
}
|
|
}
|