On Wed, 2012-05-02 at 15:49 -0500, Ben Myers wrote: > On Wed, Mar 14, 2012 at 03:26:36PM -0500, Chandra Seetharaman wrote: > > >From 0ed09750a12c6265861415bdb431c14f8eb02437 Mon Sep 17 00:00:00 2001 > > From: Chandra Seetharaman <sekharan@xxxxxxxxxx> > > Date: Wed, 14 Mar 2012 14:17:47 -0500 > > Subject: [PATCH 2/4] Add project quota changes to all the places where group quota field > > is used. > > > > No externally visible changed and no superblock changes, yet. > > Looks like this patch does a few things: > * add separate project quota members into various structures > * split project quota and group quotas so that instead of overriding > the group quota members incore, the new project quota members are > used instead > * get rid of usage of the OQUOTA flag incore, in favor of separate group > and project quota flags. > * add a project dquot argument to various functions Yes. Nothing is external yet. I understand you want details on what changes have been made. If so, I can add them. > . > > > Signed-off-by: Chandra Seetharaman <sekharan@xxxxxxxxxx> > > ... > > > @@ -1593,9 +1662,23 @@ xfs_qm_init_quotainos( > > return XFS_ERROR(error); > > } > > } > > + if (XFS_IS_PQUOTA_ON(mp) && pip == NULL) { > > + error = xfs_qm_qino_alloc(mp, &pip, > > + sbflags | XFS_SB_GQUOTINO, > ^^^^ > So... you're still using the group quota inode at this point. Yes, that is by design. There is no PQUOTINO with this patch. It is added in the next patch. Change all internal stuff in this patch so that the next patch which changes the superblock has very limited change (for easier read/review of the patch). > > > + flags | XFS_QMOPT_PQUOTA); > > + if (error) { > > + if (uip) > > + IRELE(uip); > > + if (gip) > > + IRELE(gip); > > + > > + return XFS_ERROR(error); > > + } > > + } > > ... > > > @@ -342,9 +354,12 @@ xfs_trans_apply_dquot_deltas( > > > > ASSERT(tp->t_dqinfo); > > qa = tp->t_dqinfo->dqa_usrdquots; > > - for (j = 0; j < 2; j++) { > > + for (j = 0; j < 3; j++) { /* 0 - usr, 1 - grp, 2 - prj */ > > if (qa[0].qt_dquot == NULL) { > ^^^^^^^^^^^^^^^^^^^^^^ > That really looks weird to me. Can you explain what is going on there? Just to make it clear, I didn't add it :). Per my understanding, it means is that there is no dquot structure of this type(user, group, project) in this transaction, so we just skip over it and move to the next type. > > > > - qa = tp->t_dqinfo->dqa_grpdquots; > > + if (qa == tp->t_dqinfo->dqa_usrdquots) > > + qa = tp->t_dqinfo->dqa_grpdquots; > > + else > > + qa = tp->t_dqinfo->dqa_prjdquots; > > continue; > _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs