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>
This commit is contained in:
committed by
Jan Kara
parent
49792c806d
commit
5dd4056db8
@@ -5712,7 +5712,7 @@ int ocfs2_remove_btree_range(struct inode *inode,
|
||||
goto out;
|
||||
}
|
||||
|
||||
vfs_dq_free_space_nodirty(inode,
|
||||
dquot_free_space_nodirty(inode,
|
||||
ocfs2_clusters_to_bytes(inode->i_sb, len));
|
||||
|
||||
ret = ocfs2_remove_extent(handle, et, cpos, len, meta_ac, dealloc);
|
||||
@@ -6935,7 +6935,7 @@ static int ocfs2_do_truncate(struct ocfs2_super *osb,
|
||||
goto bail;
|
||||
}
|
||||
|
||||
vfs_dq_free_space_nodirty(inode,
|
||||
dquot_free_space_nodirty(inode,
|
||||
ocfs2_clusters_to_bytes(osb->sb, clusters_to_del));
|
||||
spin_lock(&OCFS2_I(inode)->ip_lock);
|
||||
OCFS2_I(inode)->ip_clusters = le32_to_cpu(fe->i_clusters) -
|
||||
@@ -7300,11 +7300,10 @@ int ocfs2_convert_inline_data_to_extents(struct inode *inode,
|
||||
unsigned int page_end;
|
||||
u64 phys;
|
||||
|
||||
if (vfs_dq_alloc_space_nodirty(inode,
|
||||
ocfs2_clusters_to_bytes(osb->sb, 1))) {
|
||||
ret = -EDQUOT;
|
||||
ret = dquot_alloc_space_nodirty(inode,
|
||||
ocfs2_clusters_to_bytes(osb->sb, 1));
|
||||
if (ret)
|
||||
goto out_commit;
|
||||
}
|
||||
did_quota = 1;
|
||||
|
||||
ret = ocfs2_claim_clusters(osb, handle, data_ac, 1, &bit_off,
|
||||
@@ -7380,7 +7379,7 @@ int ocfs2_convert_inline_data_to_extents(struct inode *inode,
|
||||
|
||||
out_commit:
|
||||
if (ret < 0 && did_quota)
|
||||
vfs_dq_free_space_nodirty(inode,
|
||||
dquot_free_space_nodirty(inode,
|
||||
ocfs2_clusters_to_bytes(osb->sb, 1));
|
||||
|
||||
ocfs2_commit_trans(osb, handle);
|
||||
|
Reference in New Issue
Block a user