FreeBSD/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
/*
 * Free the arc data buffer.  If it is an l2arc write in progress,
 * the buffer is placed on l2arc_free_on_write to be freed later.
 */
Free the arc data buffer.  If it is an l2arc write in progress,
the buffer is placed on l2arc_free_on_write to be freed later.
Free the arc data buffer . If it is an l2arc write in progress the buffer is placed on l2arc_free_on_write to be freed later .
static void
arc_buf_data_free(arc_buf_t *buf, void (*free_func)(void *, size_t))
{
	arc_buf_hdr_t *hdr = buf->b_hdr;
	if (HDR_L2_WRITING(hdr)) {
		arc_buf_free_on_write(buf->b_data, hdr->b_size, free_func);
		ARCSTAT_BUMP(arcstat_l2_free_on_write);
	} else {
		free_func(buf->b_data, hdr->b_size);
	}
}
static void arc_buf_data_free ( arc_buf_t * buf , void ( * free_func ) ( void * , size_t ) ) { arc_buf_hdr_t * hdr = buf -> b_hdr ; if ( HDR_L2_WRITING ( hdr ) ) { arc_buf_free_on_write ( buf -> b_data , hdr -> b_size , free_func ) ; ARCSTAT_BUMP ( arcstat_l2_free_on_write ) ; } else { free_func ( buf -> b_data , hdr -> b_size ) ; } }
Free the arc data buffer.
Free the arc data buffer .