NFS: Don't run nfs_access_cache_shrinker() when the mask is GFP_NOFS
[safe/jmp/linux-2.6] / fs / ufs / truncate.c
index 56ab31f..d3b6270 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;