diff options
Diffstat (limited to 'fs/xfs/xfs_trans_buf.c')
| -rw-r--r-- | fs/xfs/xfs_trans_buf.c | 27 | 
1 files changed, 15 insertions, 12 deletions
| diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index 4fc17d479d42..3edf5dbee001 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -93,7 +93,7 @@ _xfs_trans_bjoin(  	xfs_buf_item_init(bp, tp->t_mountp);  	bip = bp->b_fspriv;  	ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); -	ASSERT(!(bip->bli_format.blf_flags & XFS_BLF_CANCEL)); +	ASSERT(!(bip->__bli_format.blf_flags & XFS_BLF_CANCEL));  	ASSERT(!(bip->bli_flags & XFS_BLI_LOGGED));  	if (reset_recur)  		bip->bli_recur = 0; @@ -432,7 +432,7 @@ xfs_trans_brelse(xfs_trans_t	*tp,  	bip = bp->b_fspriv;  	ASSERT(bip->bli_item.li_type == XFS_LI_BUF);  	ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); -	ASSERT(!(bip->bli_format.blf_flags & XFS_BLF_CANCEL)); +	ASSERT(!(bip->__bli_format.blf_flags & XFS_BLF_CANCEL));  	ASSERT(atomic_read(&bip->bli_refcount) > 0);  	trace_xfs_trans_brelse(bip); @@ -519,7 +519,7 @@ xfs_trans_bhold(xfs_trans_t	*tp,  	ASSERT(bp->b_transp == tp);  	ASSERT(bip != NULL);  	ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); -	ASSERT(!(bip->bli_format.blf_flags & XFS_BLF_CANCEL)); +	ASSERT(!(bip->__bli_format.blf_flags & XFS_BLF_CANCEL));  	ASSERT(atomic_read(&bip->bli_refcount) > 0);  	bip->bli_flags |= XFS_BLI_HOLD; @@ -539,7 +539,7 @@ xfs_trans_bhold_release(xfs_trans_t	*tp,  	ASSERT(bp->b_transp == tp);  	ASSERT(bip != NULL);  	ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); -	ASSERT(!(bip->bli_format.blf_flags & XFS_BLF_CANCEL)); +	ASSERT(!(bip->__bli_format.blf_flags & XFS_BLF_CANCEL));  	ASSERT(atomic_read(&bip->bli_refcount) > 0);  	ASSERT(bip->bli_flags & XFS_BLI_HOLD); @@ -598,7 +598,7 @@ xfs_trans_log_buf(xfs_trans_t	*tp,  		bip->bli_flags &= ~XFS_BLI_STALE;  		ASSERT(XFS_BUF_ISSTALE(bp));  		XFS_BUF_UNSTALE(bp); -		bip->bli_format.blf_flags &= ~XFS_BLF_CANCEL; +		bip->__bli_format.blf_flags &= ~XFS_BLF_CANCEL;  	}  	tp->t_flags |= XFS_TRANS_DIRTY; @@ -643,6 +643,7 @@ xfs_trans_binval(  	xfs_buf_t	*bp)  {  	xfs_buf_log_item_t	*bip = bp->b_fspriv; +	int			i;  	ASSERT(bp->b_transp == tp);  	ASSERT(bip != NULL); @@ -657,8 +658,8 @@ xfs_trans_binval(  		 */  		ASSERT(XFS_BUF_ISSTALE(bp));  		ASSERT(!(bip->bli_flags & (XFS_BLI_LOGGED | XFS_BLI_DIRTY))); -		ASSERT(!(bip->bli_format.blf_flags & XFS_BLF_INODE_BUF)); -		ASSERT(bip->bli_format.blf_flags & XFS_BLF_CANCEL); +		ASSERT(!(bip->__bli_format.blf_flags & XFS_BLF_INODE_BUF)); +		ASSERT(bip->__bli_format.blf_flags & XFS_BLF_CANCEL);  		ASSERT(bip->bli_item.li_desc->lid_flags & XFS_LID_DIRTY);  		ASSERT(tp->t_flags & XFS_TRANS_DIRTY);  		return; @@ -668,10 +669,12 @@ xfs_trans_binval(  	bip->bli_flags |= XFS_BLI_STALE;  	bip->bli_flags &= ~(XFS_BLI_INODE_BUF | XFS_BLI_LOGGED | XFS_BLI_DIRTY); -	bip->bli_format.blf_flags &= ~XFS_BLF_INODE_BUF; -	bip->bli_format.blf_flags |= XFS_BLF_CANCEL; -	memset((char *)(bip->bli_format.blf_data_map), 0, -	      (bip->bli_format.blf_map_size * sizeof(uint))); +	bip->__bli_format.blf_flags &= ~XFS_BLF_INODE_BUF; +	bip->__bli_format.blf_flags |= XFS_BLF_CANCEL; +	for (i = 0; i < bip->bli_format_count; i++) { +		memset(bip->bli_formats[i].blf_data_map, 0, +		       (bip->bli_formats[i].blf_map_size * sizeof(uint))); +	}  	bip->bli_item.li_desc->lid_flags |= XFS_LID_DIRTY;  	tp->t_flags |= XFS_TRANS_DIRTY;  } @@ -775,5 +778,5 @@ xfs_trans_dquot_buf(  	       type == XFS_BLF_GDQUOT_BUF);  	ASSERT(atomic_read(&bip->bli_refcount) > 0); -	bip->bli_format.blf_flags |= type; +	bip->__bli_format.blf_flags |= type;  } |