XLOG_VEC_SET_TYPE(log_vector, XLOG_REG_TYPE_TRANSHDR); 
xfs_trans_fill_vecs(	xfs_trans_t		*tp,	xfs_log_iovec_t		*log_vector){	xfs_log_item_desc_t	*lidp;	xfs_log_iovec_t		*vecp;	uint			nitems;	/*	 * Skip over the entry for the transaction header, we'll	 * fill that in at the end.	 */	vecp = log_vector + 1;		/* pointer arithmetic */	nitems = 0;	lidp = xfs_trans_first_item(tp);	ASSERT(lidp != NULL);	while (lidp != NULL) {		/*		 * Skip items which aren't dirty in this transaction.		 */		if (!(lidp->lid_flags & XFS_LID_DIRTY)) {			lidp = xfs_trans_next_item(tp, lidp);			continue;		}		/*		 * The item may be marked dirty but not log anything.		 * This can be used to get called when a transaction		 * is committed.		 */		if (lidp->lid_size) {			nitems++;		}		IOP_FORMAT(lidp->lid_item, vecp);		vecp += lidp->lid_size;		/* pointer arithmetic */		IOP_PIN(lidp->lid_item);		lidp = xfs_trans_next_item(tp, lidp);	}	/*	 * Now that we've counted the number of items in this	 * transaction, fill in the transaction header.	 */	tp->t_header.th_magic = XFS_TRANS_HEADER_MAGIC;	tp->t_header.th_type = tp->t_type;	tp->t_header.th_num_items = nitems;	log_vector->i_addr = (xfs_caddr_t)&tp->t_header;	log_vector->i_len = sizeof(xfs_trans_header_t);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/7e9c63961558092d584936a874cf3fee80002eb6/xfs_trans.c/clean/fs/xfs/xfs_trans.c