diff options
author | Christoph Hellwig <hch@infradead.org> | 2010-03-03 09:05:00 -0500 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2010-03-04 18:20:28 -0500 |
commit | 5dd4056db84387975140ff2568eaa0406f07985e (patch) | |
tree | 03c26d7f6e3367b167bfeeb1a01654c6619573f4 /fs/ext2/balloc.c | |
parent | 49792c806d0bfd53afc789dcdf50dc9bed2c5b83 (diff) |
dquot: cleanup space allocation / freeing routines
Get rid of the alloc_space, free_space, reserve_space, claim_space and
release_rsv dquot operations - they are always called from the filesystem
and if a filesystem really needs their own (which none currently does)
it can just call into it's own routine directly.
Move shared logic into the common __dquot_alloc_space,
dquot_claim_space_nodirty and __dquot_free_space low-level methods,
and rationalize the wrappers around it to move as much as possible
code into the common block for CONFIG_QUOTA vs not. Also rename
all these helpers to be named dquot_* instead of vfs_dq_*.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/ext2/balloc.c')
-rw-r--r-- | fs/ext2/balloc.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c index 7f8d2e5a7ea6..1d081f0cfec2 100644 --- a/fs/ext2/balloc.c +++ b/fs/ext2/balloc.c | |||
@@ -570,7 +570,7 @@ do_more: | |||
570 | error_return: | 570 | error_return: |
571 | brelse(bitmap_bh); | 571 | brelse(bitmap_bh); |
572 | release_blocks(sb, freed); | 572 | release_blocks(sb, freed); |
573 | vfs_dq_free_block(inode, freed); | 573 | dquot_free_block(inode, freed); |
574 | } | 574 | } |
575 | 575 | ||
576 | /** | 576 | /** |
@@ -1236,6 +1236,7 @@ ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal, | |||
1236 | unsigned short windowsz = 0; | 1236 | unsigned short windowsz = 0; |
1237 | unsigned long ngroups; | 1237 | unsigned long ngroups; |
1238 | unsigned long num = *count; | 1238 | unsigned long num = *count; |
1239 | int ret; | ||
1239 | 1240 | ||
1240 | *errp = -ENOSPC; | 1241 | *errp = -ENOSPC; |
1241 | sb = inode->i_sb; | 1242 | sb = inode->i_sb; |
@@ -1247,8 +1248,9 @@ ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal, | |||
1247 | /* | 1248 | /* |
1248 | * Check quota for allocation of this block. | 1249 | * Check quota for allocation of this block. |
1249 | */ | 1250 | */ |
1250 | if (vfs_dq_alloc_block(inode, num)) { | 1251 | ret = dquot_alloc_block(inode, num); |
1251 | *errp = -EDQUOT; | 1252 | if (ret) { |
1253 | *errp = ret; | ||
1252 | return 0; | 1254 | return 0; |
1253 | } | 1255 | } |
1254 | 1256 | ||
@@ -1409,7 +1411,7 @@ allocated: | |||
1409 | 1411 | ||
1410 | *errp = 0; | 1412 | *errp = 0; |
1411 | brelse(bitmap_bh); | 1413 | brelse(bitmap_bh); |
1412 | vfs_dq_free_block(inode, *count-num); | 1414 | dquot_free_block(inode, *count-num); |
1413 | *count = num; | 1415 | *count = num; |
1414 | return ret_block; | 1416 | return ret_block; |
1415 | 1417 | ||
@@ -1420,7 +1422,7 @@ out: | |||
1420 | * Undo the block allocation | 1422 | * Undo the block allocation |
1421 | */ | 1423 | */ |
1422 | if (!performed_allocation) | 1424 | if (!performed_allocation) |
1423 | vfs_dq_free_block(inode, *count); | 1425 | dquot_free_block(inode, *count); |
1424 | brelse(bitmap_bh); | 1426 | brelse(bitmap_bh); |
1425 | return 0; | 1427 | return 0; |
1426 | } | 1428 | } |