summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/alloc.c
diff options
context:
space:
mode:
authorMark Fasheh <mfasheh@suse.com>2009-01-30 00:06:21 +0100
committerMark Fasheh <mfasheh@suse.com>2009-02-02 23:20:20 +0100
commitfd4ef231962ab44fd1004e87f9d7c6809f00cd64 (patch)
tree7a79939e1a5c84a41e1a7063fbe2eb68848c9a25 /fs/ocfs2/alloc.c
parentocfs2: Wakeup the downconvert thread after a successful cancel convert (diff)
downloadlinux-fd4ef231962ab44fd1004e87f9d7c6809f00cd64.tar.xz
linux-fd4ef231962ab44fd1004e87f9d7c6809f00cd64.zip
ocfs2: add quota call to ocfs2_remove_btree_range()
We weren't reclaiming the clusters which get free'd from this function, so any user punching holes in a file would still have those bytes accounted against him/her. Add the call to vfs_dq_free_space_nodirty() to fix this. Interestingly enough, the journal credits calculation already took this into account. Signed-off-by: Mark Fasheh <mfasheh@suse.com> Acked-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/ocfs2/alloc.c')
-rw-r--r--fs/ocfs2/alloc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
index d861096c9d81..60fe74035db5 100644
--- a/fs/ocfs2/alloc.c
+++ b/fs/ocfs2/alloc.c
@@ -5390,6 +5390,9 @@ int ocfs2_remove_btree_range(struct inode *inode,
goto out;
}
+ vfs_dq_free_space_nodirty(inode,
+ ocfs2_clusters_to_bytes(inode->i_sb, len));
+
ret = ocfs2_remove_extent(inode, et, cpos, len, handle, meta_ac,
dealloc);
if (ret) {