From: "Darrick J. Wong" <djwong@kernel.org>
To: Christoph Hellwig <hch@infradead.org>
Cc: linux-xfs@vger.kernel.org, david@fromorbit.com, bfoster@redhat.com
Subject: Re: [PATCH 01/17] xfs: fix xquota chown transactionality wrt delalloc blocks
Date: Mon, 1 Feb 2021 10:03:59 -0800 [thread overview]
Message-ID: <20210201180359.GA7193@magnolia> (raw)
In-Reply-To: <20210201121425.GA3271714@infradead.org>
On Mon, Feb 01, 2021 at 12:14:25PM +0000, Christoph Hellwig wrote:
> On Sun, Jan 31, 2021 at 06:03:54PM -0800, Darrick J. Wong wrote:
> > @@ -1785,6 +1785,28 @@ xfs_qm_vop_chown(
> > xfs_trans_mod_dquot(tp, newdq, bfield, ip->i_d.di_nblocks);
> > xfs_trans_mod_dquot(tp, newdq, XFS_TRANS_DQ_ICOUNT, 1);
> >
> > + /*
> > + * Back when we made quota reservations for the chown, we reserved the
> > + * ondisk blocks + delalloc blocks with the new dquot. Now that we've
> > + * switched the dquots, decrease the new dquot's block reservation
> > + * (having already bumped up the real counter) so that we don't have
> > + * any reservation to give back when we commit.
> > + */
> > + xfs_trans_mod_dquot(tp, newdq, XFS_TRANS_DQ_RES_BLKS,
> > + -ip->i_delayed_blks);
> > +
> > + /*
> > + * Give the incore reservation for delalloc blocks back to the old
> > + * dquot. We don't normally handle delalloc quota reservations
> > + * transactionally, so just lock the dquot and subtract from the
> > + * reservation. We've dirtied the transaction, so it's too late to
> > + * turn back now.
> > + */
> > + tp->t_flags |= XFS_TRANS_DIRTY;
> > + xfs_dqlock(prevdq);
> > + prevdq->q_blk.reserved -= ip->i_delayed_blks;
> > + xfs_dqunlock(prevdq);
>
> Any particular reason for this order of operations vs grouping it with
> the existing prevdq and newdq sections?
None aside from maintaining a similar order (ondisk blocks, then
delalloc) as the code that was moved from the reservation function.
Though the newdq side is entirely dqtrx manipulations so I don't
think it matters much. Thanks for the review!
--D
> Otherwise loooks fine:
>
> Reviewed-by: Christoph Hellwig <hch@lst.de>
next prev parent reply other threads:[~2021-02-01 18:04 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-01 2:03 [PATCHSET v5 00/17] xfs: minor cleanups of the quota functions Darrick J. Wong
2021-02-01 2:03 ` [PATCH 01/17] xfs: fix xquota chown transactionality wrt delalloc blocks Darrick J. Wong
2021-02-01 12:14 ` Christoph Hellwig
2021-02-01 18:03 ` Darrick J. Wong [this message]
2021-02-01 2:04 ` [PATCH 02/17] xfs: clean up quota reservation callsites Darrick J. Wong
2021-02-01 2:04 ` [PATCH 03/17] xfs: create convenience wrappers for incore quota block reservations Darrick J. Wong
2021-02-01 2:04 ` [PATCH 04/17] xfs: remove xfs_trans_unreserve_quota_nblks completely Darrick J. Wong
2021-02-01 2:04 ` [PATCH 05/17] xfs: clean up icreate quota reservation calls Darrick J. Wong
2021-02-01 2:28 ` Chaitanya Kulkarni
2021-02-01 2:04 ` [PATCH 06/17] xfs: fix up build warnings when quotas are disabled Darrick J. Wong
2021-02-01 2:04 ` [PATCH 07/17] xfs: reduce quota reservation when doing a dax unwritten extent conversion Darrick J. Wong
2021-02-01 2:04 ` [PATCH 08/17] xfs: reserve data and rt quota at the same time Darrick J. Wong
2021-02-01 2:04 ` [PATCH 09/17] xfs: refactor common transaction/inode/quota allocation idiom Darrick J. Wong
2021-02-01 2:04 ` [PATCH 10/17] xfs: allow reservation of rtblocks with xfs_trans_alloc_inode Darrick J. Wong
2021-02-01 2:04 ` [PATCH 11/17] xfs: refactor reflink functions to use xfs_trans_alloc_inode Darrick J. Wong
2021-02-01 2:04 ` [PATCH 12/17] xfs: refactor inode creation transaction/inode/quota allocation idiom Darrick J. Wong
2021-02-01 2:05 ` [PATCH 13/17] xfs: move xfs_qm_vop_chown_reserve to xfs_trans_dquot.c Darrick J. Wong
2021-02-01 12:17 ` Christoph Hellwig
2021-02-01 18:46 ` Darrick J. Wong
2021-02-01 2:05 ` [PATCH 14/17] xfs: clean up xfs_trans_reserve_quota_chown a bit Darrick J. Wong
2021-02-01 12:18 ` Christoph Hellwig
2021-02-01 18:27 ` Darrick J. Wong
2021-02-01 2:05 ` [PATCH 15/17] xfs: rename code to error in xfs_ioctl_setattr Darrick J. Wong
2021-02-01 2:24 ` Chaitanya Kulkarni
2021-02-01 12:18 ` Christoph Hellwig
2021-02-01 2:05 ` [PATCH 16/17] xfs: refactor inode creation transaction/inode/quota allocation idiom Darrick J. Wong
2021-02-01 12:20 ` Christoph Hellwig
2021-02-01 18:44 ` Darrick J. Wong
2021-02-01 2:05 ` [PATCH 17/17] xfs: shut down the filesystem if we screw up quota errors Darrick J. Wong
2021-02-01 12:20 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210201180359.GA7193@magnolia \
--to=djwong@kernel.org \
--cc=bfoster@redhat.com \
--cc=david@fromorbit.com \
--cc=hch@infradead.org \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox