/* Remember that EFIs, EFDs, and IUNLINKs are handled later.  */
STATIC void xlog_recover_free_trans(xlog_recover_t *trans)
/* Remember that EFIs, EFDs, and IUNLINKs are handled later.  */
STATIC void xlog_recover_free_trans(xlog_recover_t *trans)
{
	xlog_recover_item_t	*first_item, *item, *free_item;
	int			i;
	item = first_item = trans->r_itemq;
	do {
		free_item = item;
		item = item->ri_next;
		for (i = 0; i < free_item->ri_cnt; i++) {
			kmem_free(free_item->ri_buf[i].i_addr);
		}
		kmem_free(free_item->ri_buf);
		kmem_free(free_item);
	} while (first_item != item);
	kmem_free(trans);
}