Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-block.git] / fs / hfsplus / inode.c
index 8ad4c594898be9c69dc15916ecc19e204251f6bc..6dd107d7421ec05368845846d6a9cd9f558e9d23 100644 (file)
@@ -253,6 +253,12 @@ static int hfsplus_setattr(struct dentry *dentry, struct iattr *attr)
        if ((attr->ia_valid & ATTR_SIZE) &&
            attr->ia_size != i_size_read(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);
                hfsplus_file_truncate(inode);
        }