if ((error = xfs_qm_dqread(tp, id, dqp, flags))) { 
if ((error = xfs_qm_dqread(&tp, id, dqp, flags))) { 
xfs_qm_idtodq(	xfs_mount_t	*mp,	xfs_dqid_t	id,	 /* gid or uid, depending on type */	uint		type,	 /* UDQUOT or GDQUOT */	uint		flags,	 /* DQALLOC, DQREPAIR */	xfs_dquot_t	**O_dqpp)/* OUT : incore dquot, not locked */{	xfs_dquot_t	*dqp;	int		error;	xfs_trans_t	*tp;	int		cancelflags=0;	dqp = xfs_qm_dqinit(mp, id, type);	tp = NULL;	if (flags & XFS_QMOPT_DQALLOC) {		tp = xfs_trans_alloc(mp, XFS_TRANS_QM_DQALLOC);		if ((error = xfs_trans_reserve(tp,				       XFS_QM_DQALLOC_SPACE_RES(mp),				       XFS_WRITE_LOG_RES(mp) +					      BBTOB(XFS_QI_DQCHUNKLEN(mp)) - 1 +					      128,				       0,				       XFS_TRANS_PERM_LOG_RES,				       XFS_WRITE_LOG_COUNT))) {			cancelflags = 0;			goto error0;		}		cancelflags = XFS_TRANS_RELEASE_LOG_RES;	}	/*	 * Read it from disk; xfs_dqread() takes care of	 * all the necessary initialization of dquot's fields (locks, etc)	 */	if ((error = xfs_qm_dqread(tp, id, dqp, flags))) {		/*		 * This can happen if quotas got turned off (ESRCH),		 * or if the dquot didn't exist on disk and we ask to		 * allocate (ENOENT).		 */		xfs_dqtrace_entry(dqp, "DQREAD FAIL");		cancelflags |= XFS_TRANS_ABORT;		goto error0;	}	if (tp) {		if ((error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES,					     NULL)))			goto error1;	}	*O_dqpp = dqp;	return (0); error0:	ASSERT(error);	if (tp)		xfs_trans_cancel(tp, cancelflags); error1:	xfs_qm_dqdestroy(dqp);	*O_dqpp = NULL;	return (error);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/efa092f3d4c60be7e81de515db9f06e5f8426afc/xfs_dquot.c/clean/fs/xfs/quota/xfs_dquot.c