/* gfs2_log_release - Release a given number of log blocks @sdp: The GFS2 superblock @blks: The number of blocks  */
void gfs2_log_release(struct gfs2_sbd *sdp, unsigned int blks)
/* gfs2_log_release - Release a given number of log blocks @sdp: The GFS2 superblock @blks: The number of blocks  */
void gfs2_log_release(struct gfs2_sbd *sdp, unsigned int blks)
{
	gfs2_log_lock(sdp);
	atomic_add(blks, &sdp->sd_log_blks_free);
	trace_gfs2_log_blocks(sdp, blks);
	gfs2_assert_withdraw(sdp,
			     atomic_read(&sdp->sd_log_blks_free) <= sdp->sd_jdesc->jd_blocks);
	gfs2_log_unlock(sdp);
	up_read(&sdp->sd_log_flush_lock);
}