On Thu, Jun 28, 2018 at 12:36:34PM -0400, Brian Foster wrote: > Use ->t_dfops of the transaction from the caller. Reset it before we > return to avoid leaks of local stack memory. > > Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx> Looks ok, Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --D > --- > fs/xfs/xfs_reflink.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/fs/xfs/xfs_reflink.c b/fs/xfs/xfs_reflink.c > index 7cfe74d1514e..75a99bb020e4 100644 > --- a/fs/xfs/xfs_reflink.c > +++ b/fs/xfs/xfs_reflink.c > @@ -553,6 +553,7 @@ xfs_reflink_cancel_cow_blocks( > struct xfs_iext_cursor icur; > xfs_fsblock_t firstfsb; > struct xfs_defer_ops dfops; > + struct xfs_defer_ops *odfops = (*tpp)->t_dfops; > int error = 0; > > if (!xfs_is_reflink_inode(ip)) > @@ -580,23 +581,24 @@ xfs_reflink_cancel_cow_blocks( > break; > } else if (del.br_state == XFS_EXT_UNWRITTEN || cancel_real) { > xfs_defer_init(&dfops, &firstfsb); > + (*tpp)->t_dfops = &dfops; > > /* Free the CoW orphan record. */ > error = xfs_refcount_free_cow_extent(ip->i_mount, > - &dfops, del.br_startblock, > + (*tpp)->t_dfops, del.br_startblock, > del.br_blockcount); > if (error) > break; > > - xfs_bmap_add_free(ip->i_mount, &dfops, > + xfs_bmap_add_free(ip->i_mount, (*tpp)->t_dfops, > del.br_startblock, del.br_blockcount, > NULL); > > /* Roll the transaction */ > - xfs_defer_ijoin(&dfops, ip); > - error = xfs_defer_finish(tpp, &dfops); > + xfs_defer_ijoin((*tpp)->t_dfops, ip); > + error = xfs_defer_finish(tpp, (*tpp)->t_dfops); > if (error) { > - xfs_defer_cancel(&dfops); > + xfs_defer_cancel((*tpp)->t_dfops); > break; > } > > @@ -621,7 +623,7 @@ xfs_reflink_cancel_cow_blocks( > /* clear tag if cow fork is emptied */ > if (!ifp->if_bytes) > xfs_inode_clear_cowblocks_tag(ip); > - > + (*tpp)->t_dfops = odfops; > return error; > } > > -- > 2.17.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html