dquot: move dquot initialization responsibility into the filesystem
[pandora-kernel.git] / fs / ext2 / inode.c
index 71b032c..c87840c 100644 (file)
@@ -58,6 +58,8 @@ static inline int ext2_inode_is_fast_symlink(struct inode *inode)
  */
 void ext2_delete_inode (struct inode * inode)
 {
+       if (!is_bad_inode(inode))
+               vfs_dq_init(inode);
        truncate_inode_pages(&inode->i_data, 0);
 
        if (is_bad_inode(inode))
@@ -1457,9 +1459,12 @@ int ext2_setattr(struct dentry *dentry, struct iattr *iattr)
        error = inode_change_ok(inode, iattr);
        if (error)
                return error;
+
+       if (iattr->ia_valid & ATTR_SIZE)
+               vfs_dq_init(inode);
        if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
            (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) {
-               error = vfs_dq_transfer(inode, iattr) ? -EDQUOT : 0;
+               error = dquot_transfer(inode, iattr);
                if (error)
                        return error;
        }