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>
这个提交包含在:
@@ -644,8 +644,8 @@ ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh,
|
||||
the inode. */
|
||||
ea_bdebug(new_bh, "reusing block");
|
||||
|
||||
error = -EDQUOT;
|
||||
if (vfs_dq_alloc_block(inode, 1)) {
|
||||
error = dquot_alloc_block(inode, 1);
|
||||
if (error) {
|
||||
unlock_buffer(new_bh);
|
||||
goto cleanup;
|
||||
}
|
||||
@@ -702,7 +702,7 @@ ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh,
|
||||
* as if nothing happened and cleanup the unused block */
|
||||
if (error && error != -ENOSPC) {
|
||||
if (new_bh && new_bh != old_bh)
|
||||
vfs_dq_free_block(inode, 1);
|
||||
dquot_free_block(inode, 1);
|
||||
goto cleanup;
|
||||
}
|
||||
} else
|
||||
@@ -734,7 +734,7 @@ ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh,
|
||||
le32_add_cpu(&HDR(old_bh)->h_refcount, -1);
|
||||
if (ce)
|
||||
mb_cache_entry_release(ce);
|
||||
vfs_dq_free_block(inode, 1);
|
||||
dquot_free_block(inode, 1);
|
||||
mark_buffer_dirty(old_bh);
|
||||
ea_bdebug(old_bh, "refcount now=%d",
|
||||
le32_to_cpu(HDR(old_bh)->h_refcount));
|
||||
@@ -797,7 +797,7 @@ ext2_xattr_delete_inode(struct inode *inode)
|
||||
mark_buffer_dirty(bh);
|
||||
if (IS_SYNC(inode))
|
||||
sync_dirty_buffer(bh);
|
||||
vfs_dq_free_block(inode, 1);
|
||||
dquot_free_block(inode, 1);
|
||||
}
|
||||
EXT2_I(inode)->i_file_acl = 0;
|
||||
|
||||
|
在新工单中引用
屏蔽一个用户