diff options
Diffstat (limited to 'fs/xfs/libxfs/xfs_ialloc.c')
| -rw-r--r-- | fs/xfs/libxfs/xfs_ialloc.c | 33 | 
1 files changed, 16 insertions, 17 deletions
diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index 0d968e8143aa..a8f6db735d5d 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -1838,23 +1838,24 @@ out_error:   */  STATIC void  xfs_difree_inode_chunk( -	struct xfs_mount		*mp, +	struct xfs_trans		*tp,  	xfs_agnumber_t			agno, -	struct xfs_inobt_rec_incore	*rec, -	struct xfs_defer_ops		*dfops) +	struct xfs_inobt_rec_incore	*rec)  { -	xfs_agblock_t	sagbno = XFS_AGINO_TO_AGBNO(mp, rec->ir_startino); -	int		startidx, endidx; -	int		nextbit; -	xfs_agblock_t	agbno; -	int		contigblk; -	struct xfs_owner_info	oinfo; +	struct xfs_mount		*mp = tp->t_mountp; +	xfs_agblock_t			sagbno = XFS_AGINO_TO_AGBNO(mp, +							rec->ir_startino); +	int				startidx, endidx; +	int				nextbit; +	xfs_agblock_t			agbno; +	int				contigblk; +	struct xfs_owner_info		oinfo;  	DECLARE_BITMAP(holemask, XFS_INOBT_HOLEMASK_BITS);  	xfs_rmap_ag_owner(&oinfo, XFS_RMAP_OWN_INODES);  	if (!xfs_inobt_issparse(rec->ir_holemask)) {  		/* not sparse, calculate extent info directly */ -		xfs_bmap_add_free(mp, dfops, XFS_AGB_TO_FSB(mp, agno, sagbno), +		xfs_bmap_add_free(tp, XFS_AGB_TO_FSB(mp, agno, sagbno),  				  mp->m_ialloc_blks, &oinfo);  		return;  	} @@ -1898,7 +1899,7 @@ xfs_difree_inode_chunk(  		ASSERT(agbno % mp->m_sb.sb_spino_align == 0);  		ASSERT(contigblk % mp->m_sb.sb_spino_align == 0); -		xfs_bmap_add_free(mp, dfops, XFS_AGB_TO_FSB(mp, agno, agbno), +		xfs_bmap_add_free(tp, XFS_AGB_TO_FSB(mp, agno, agbno),  				  contigblk, &oinfo);  		/* reset range to current bit and carry on... */ @@ -1915,7 +1916,6 @@ xfs_difree_inobt(  	struct xfs_trans		*tp,  	struct xfs_buf			*agbp,  	xfs_agino_t			agino, -	struct xfs_defer_ops		*dfops,  	struct xfs_icluster		*xic,  	struct xfs_inobt_rec_incore	*orec)  { @@ -2003,7 +2003,7 @@ xfs_difree_inobt(  			goto error0;  		} -		xfs_difree_inode_chunk(mp, agno, &rec, dfops); +		xfs_difree_inode_chunk(tp, agno, &rec);  	} else {  		xic->deleted = false; @@ -2148,7 +2148,6 @@ int  xfs_difree(  	struct xfs_trans	*tp,		/* transaction pointer */  	xfs_ino_t		inode,		/* inode to be freed */ -	struct xfs_defer_ops	*dfops,		/* extents to free */  	struct xfs_icluster	*xic)	/* cluster info if deleted */  {  	/* REFERENCED */ @@ -2200,7 +2199,7 @@ xfs_difree(  	/*  	 * Fix up the inode allocation btree.  	 */ -	error = xfs_difree_inobt(mp, tp, agbp, agino, dfops, xic, &rec); +	error = xfs_difree_inobt(mp, tp, agbp, agino, xic, &rec);  	if (error)  		goto error0; @@ -2260,7 +2259,7 @@ xfs_imap_lookup(  	}  	xfs_trans_brelse(tp, agbp); -	xfs_btree_del_cursor(cur, error ? XFS_BTREE_ERROR : XFS_BTREE_NOERROR); +	xfs_btree_del_cursor(cur, error);  	if (error)  		return error; @@ -2539,7 +2538,7 @@ xfs_agi_verify(  		return __this_address;  	for (i = 0; i < XFS_AGI_UNLINKED_BUCKETS; i++) { -		if (agi->agi_unlinked[i] == NULLAGINO) +		if (agi->agi_unlinked[i] == cpu_to_be32(NULLAGINO))  			continue;  		if (!xfs_verify_ino(mp, be32_to_cpu(agi->agi_unlinked[i])))  			return __this_address;  |