Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0f539de authored by Dave Chinner's avatar Dave Chinner Committed by Ben Myers
Browse files

xfs: connect up write verifiers to new buffers



Metadata buffers that are read from disk have write verifiers
already attached to them, but newly allocated buffers do not. Add
appropriate write verifiers to all new metadata buffers.

Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
Reviewed-by: default avatarBen Myers <bpm@sgi.com>
Signed-off-by: default avatarBen Myers <bpm@sgi.com>
parent 612cfbfe
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -465,14 +465,14 @@ xfs_agfl_verify(
#endif
}

static void
void
xfs_agfl_write_verify(
	struct xfs_buf	*bp)
{
	xfs_agfl_verify(bp);
}

void
static void
xfs_agfl_read_verify(
	struct xfs_buf	*bp)
{
@@ -2181,14 +2181,14 @@ xfs_agf_verify(
	}
}

static void
void
xfs_agf_write_verify(
	struct xfs_buf	*bp)
{
	xfs_agf_verify(bp);
}

void
static void
xfs_agf_read_verify(
	struct xfs_buf	*bp)
{
+3 −0
Original line number Diff line number Diff line
@@ -231,4 +231,7 @@ xfs_alloc_get_rec(
	xfs_extlen_t		*len,	/* output: length of extent */
	int			*stat);	/* output: success/failure */

void xfs_agf_write_verify(struct xfs_buf *bp);
void xfs_agfl_write_verify(struct xfs_buf *bp);

#endif	/* __XFS_ALLOC_H__ */
+1 −0
Original line number Diff line number Diff line
@@ -401,6 +401,7 @@ static const struct xfs_btree_ops xfs_allocbt_ops = {
	.init_ptr_from_cur	= xfs_allocbt_init_ptr_from_cur,
	.key_diff		= xfs_allocbt_key_diff,
	.read_verify		= xfs_allocbt_read_verify,
	.write_verify		= xfs_allocbt_write_verify,
#ifdef DEBUG
	.keys_inorder		= xfs_allocbt_keys_inorder,
	.recs_inorder		= xfs_allocbt_recs_inorder,
+2 −2
Original line number Diff line number Diff line
@@ -924,7 +924,7 @@ xfs_attr_leaf_to_node(xfs_da_args_t *args)
					    XFS_ATTR_FORK);
	if (error)
		goto out;
	ASSERT(bp2 != NULL);
	bp2->b_pre_io = bp1->b_pre_io;
	memcpy(bp2->b_addr, bp1->b_addr, XFS_LBSIZE(dp->i_mount));
	bp1 = NULL;
	xfs_trans_log_buf(args->trans, bp2, 0, XFS_LBSIZE(dp->i_mount) - 1);
@@ -978,7 +978,7 @@ xfs_attr_leaf_create(
					    XFS_ATTR_FORK);
	if (error)
		return(error);
	ASSERT(bp != NULL);
	bp->b_pre_io = xfs_attr_leaf_write_verify;
	leaf = bp->b_addr;
	memset((char *)leaf, 0, XFS_LBSIZE(dp->i_mount));
	hdr = &leaf->hdr;
+2 −0
Original line number Diff line number Diff line
@@ -3124,6 +3124,7 @@ xfs_bmap_extents_to_btree(
	/*
	 * Fill in the child block.
	 */
	abp->b_pre_io = xfs_bmbt_write_verify;
	ablock = XFS_BUF_TO_BLOCK(abp);
	ablock->bb_magic = cpu_to_be32(XFS_BMAP_MAGIC);
	ablock->bb_level = 0;
@@ -3270,6 +3271,7 @@ xfs_bmap_local_to_extents(
		ASSERT(args.len == 1);
		*firstblock = args.fsbno;
		bp = xfs_btree_get_bufl(args.mp, tp, args.fsbno, 0);
		bp->b_pre_io = xfs_bmbt_write_verify;
		memcpy(bp->b_addr, ifp->if_u1.if_data, ifp->if_bytes);
		xfs_trans_log_buf(tp, bp, 0, ifp->if_bytes - 1);
		xfs_bmap_forkoff_reset(args.mp, ip, whichfork);
Loading