 #if defined(DEBUG) || defined(XLOG_NOLOG) if (!xlog_debug && xlog_target == log->l_targ) return 0; #endif 
xfs_log_done(xfs_mount_t	*mp,	     xfs_log_ticket_t	xtic,	     void		**iclog,	     uint		flags){	xlog_t		*log    = mp->m_log;	xlog_ticket_t	*ticket = (xfs_log_ticket_t) xtic;	xfs_lsn_t	lsn	= 0;#if defined(DEBUG) || defined(XLOG_NOLOG)	if (!xlog_debug && xlog_target == log->l_targ)		return 0;#endif	if (XLOG_FORCED_SHUTDOWN(log) ||	    /*	     * If nothing was ever written, don't write out commit record.	     * If we get an error, just continue and give back the log ticket.	     */	    (((ticket->t_flags & XLOG_TIC_INITED) == 0) &&	     (xlog_commit_record(mp, ticket,				 (xlog_in_core_t **)iclog, &lsn)))) {		lsn = (xfs_lsn_t) -1;		if (ticket->t_flags & XLOG_TIC_PERM_RESERV) {			flags |= XFS_LOG_REL_PERM_RESERV;		}	}	if ((ticket->t_flags & XLOG_TIC_PERM_RESERV) == 0 ||	    (flags & XFS_LOG_REL_PERM_RESERV)) {		/*		 * Release ticket if not permanent reservation or a specifc		 * request has been made to release a permanent reservation.		 */		xlog_trace_loggrant(log, ticket, "xfs_log_done: (non-permanent)");		xlog_ungrant_log_space(log, ticket);		xlog_state_put_ticket(log, ticket);	} else {		xlog_trace_loggrant(log, ticket, "xfs_log_done: (permanent)");		xlog_regrant_reserve_log_space(log, ticket);	}	/* If this ticket was a permanent reservation and we aren't	 * trying to release it, reset the inited flags; so next time	 * we write, a start record will be written out.	 */	if ((ticket->t_flags & XLOG_TIC_PERM_RESERV) &&	    (flags & XFS_LOG_REL_PERM_RESERV) == 0)		ticket->t_flags |= XLOG_TIC_INITED;	return lsn;}	/* xfs_log_done */
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/cfcbbbd089eadcaa86abb2c0f352e1ab23e16f72/xfs_log.c/buggy/fs/xfs/xfs_log.c