mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
xfs: don't bother calling xfs_rmap_finish_one_cleanup in xfs_rmap_finish_one
In xfs_rmap_finish_one we known the cursor is non-zero when calling xfs_rmap_finish_one_cleanup and we pass a 0 error variable. This means xfs_rmap_finish_one_cleanup is just doing a xfs_btree_del_cursor. Open code that and move xfs_rmap_finish_one_cleanup to fs/xfs/xfs_rmap_item.c. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <djwong@kernel.org> [djwong: minor porting changes] Signed-off-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
parent
37f9d1db03
commit
8363b43619
@ -2523,23 +2523,6 @@ xfs_rmap_query_all(
|
||||
return xfs_btree_query_all(cur, xfs_rmap_query_range_helper, &query);
|
||||
}
|
||||
|
||||
/* Clean up after calling xfs_rmap_finish_one. */
|
||||
void
|
||||
xfs_rmap_finish_one_cleanup(
|
||||
struct xfs_trans *tp,
|
||||
struct xfs_btree_cur *rcur,
|
||||
int error)
|
||||
{
|
||||
struct xfs_buf *agbp;
|
||||
|
||||
if (rcur == NULL)
|
||||
return;
|
||||
agbp = rcur->bc_ag.agbp;
|
||||
xfs_btree_del_cursor(rcur, error);
|
||||
if (error)
|
||||
xfs_trans_brelse(tp, agbp);
|
||||
}
|
||||
|
||||
/* Commit an rmap operation into the ondisk tree. */
|
||||
int
|
||||
__xfs_rmap_finish_intent(
|
||||
@ -2604,7 +2587,7 @@ xfs_rmap_finish_one(
|
||||
*/
|
||||
rcur = *pcur;
|
||||
if (rcur != NULL && rcur->bc_ag.pag != ri->ri_pag) {
|
||||
xfs_rmap_finish_one_cleanup(tp, rcur, 0);
|
||||
xfs_btree_del_cursor(rcur, 0);
|
||||
rcur = NULL;
|
||||
*pcur = NULL;
|
||||
}
|
||||
|
@ -192,8 +192,6 @@ void xfs_rmap_alloc_extent(struct xfs_trans *tp, xfs_agnumber_t agno,
|
||||
void xfs_rmap_free_extent(struct xfs_trans *tp, xfs_agnumber_t agno,
|
||||
xfs_agblock_t bno, xfs_extlen_t len, uint64_t owner);
|
||||
|
||||
void xfs_rmap_finish_one_cleanup(struct xfs_trans *tp,
|
||||
struct xfs_btree_cur *rcur, int error);
|
||||
int xfs_rmap_finish_one(struct xfs_trans *tp, struct xfs_rmap_intent *ri,
|
||||
struct xfs_btree_cur **pcur);
|
||||
int __xfs_rmap_finish_intent(struct xfs_btree_cur *rcur,
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "xfs_log_priv.h"
|
||||
#include "xfs_log_recover.h"
|
||||
#include "xfs_ag.h"
|
||||
#include "xfs_btree.h"
|
||||
|
||||
struct kmem_cache *xfs_rui_cache;
|
||||
struct kmem_cache *xfs_rud_cache;
|
||||
@ -386,6 +387,23 @@ xfs_rmap_update_finish_item(
|
||||
return error;
|
||||
}
|
||||
|
||||
/* Clean up after calling xfs_rmap_finish_one. */
|
||||
STATIC void
|
||||
xfs_rmap_finish_one_cleanup(
|
||||
struct xfs_trans *tp,
|
||||
struct xfs_btree_cur *rcur,
|
||||
int error)
|
||||
{
|
||||
struct xfs_buf *agbp = NULL;
|
||||
|
||||
if (rcur == NULL)
|
||||
return;
|
||||
agbp = rcur->bc_ag.agbp;
|
||||
xfs_btree_del_cursor(rcur, error);
|
||||
if (error && agbp)
|
||||
xfs_trans_brelse(tp, agbp);
|
||||
}
|
||||
|
||||
/* Abort all pending RUIs. */
|
||||
STATIC void
|
||||
xfs_rmap_update_abort_intent(
|
||||
|
Loading…
Reference in New Issue
Block a user