]> Pileus Git - ~andy/linux/blobdiff - fs/jfs/file.c
Merge tag 'kvm-3.9-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[~andy/linux] / fs / jfs / file.c
index 9d3afd157f9908dc3278965efe353dcf42694092..dd7442c5835864b0e04bdff5befbd0f020232bfb 100644 (file)
@@ -119,9 +119,12 @@ int jfs_setattr(struct dentry *dentry, struct iattr *iattr)
            iattr->ia_size != i_size_read(inode)) {
                inode_dio_wait(inode);
 
-               rc = vmtruncate(inode, iattr->ia_size);
+               rc = inode_newsize_ok(inode, iattr->ia_size);
                if (rc)
                        return rc;
+
+               truncate_setsize(inode, iattr->ia_size);
+               jfs_truncate(inode);
        }
 
        setattr_copy(inode, iattr);
@@ -133,7 +136,6 @@ int jfs_setattr(struct dentry *dentry, struct iattr *iattr)
 }
 
 const struct inode_operations jfs_file_inode_operations = {
-       .truncate       = jfs_truncate,
        .setxattr       = jfs_setxattr,
        .getxattr       = jfs_getxattr,
        .listxattr      = jfs_listxattr,