]> Pileus Git - ~andy/linux/blobdiff - fs/ufs/truncate.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs...
[~andy/linux] / fs / ufs / truncate.c
index 56ab31f00bd0f96feba40c8a91ac8fe90e2685dd..d3b6270cb377ad2afb48184dd379aff63f8c2143 100644 (file)
@@ -520,13 +520,16 @@ static int ufs_setattr(struct dentry *dentry, struct iattr *attr)
 
        if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
            (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) {
-               error = vfs_dq_transfer(inode, attr) ? -EDQUOT : 0;
+               error = dquot_transfer(inode, attr);
                if (error)
                        return error;
        }
        if (ia_valid & ATTR_SIZE &&
            attr->ia_size != i_size_read(inode)) {
                loff_t old_i_size = inode->i_size;
+
+               dquot_initialize(inode);
+
                error = vmtruncate(inode, attr->ia_size);
                if (error)
                        return error;