[Top] [All Lists]

Re: [PATCH v2] xfs: use tr_qm_dqalloc log reservation for dquot alloc

To: Brian Foster <bfoster@xxxxxxxxxx>
Subject: Re: [PATCH v2] xfs: use tr_qm_dqalloc log reservation for dquot alloc
From: Ben Myers <bpm@xxxxxxx>
Date: Mon, 27 Jan 2014 17:24:35 -0600
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1390228140-49211-1-git-send-email-bfoster@xxxxxxxxxx>
References: <1390228140-49211-1-git-send-email-bfoster@xxxxxxxxxx>
User-agent: Mutt/1.5.20 (2009-06-14)
On Mon, Jan 20, 2014 at 09:29:00AM -0500, Brian Foster wrote:
> The dquot allocation path in xfs_qm_dqread() currently uses the
> attribute set log reservation, which appears to be incorrect. We
> have reports of transaction reservation overruns with the current
> code. E.g., a repeated run of xfstests test generic/270 on a 512b
> block size fs occassionally produces the following in dmesg:
>       XFS (sdN): xlog_write: reservation summary:
>         trans type  = QM_DQALLOC (30)
>         unit res    = 7080 bytes
>         current res = -632 bytes
>         total reg   = 0 bytes (o/flow = 0 bytes)
>         ophdrs      = 0 (ophdr space = 0 bytes)
>         ophdr + reg = 0 bytes
>         num regions = 0
>       XFS (sdN): xlog_write: reservation ran out. Need to up reservation
> The dquot allocation case should consist of a write reservation
> (i.e., we are allocating a range of the internal quota file) plus
> the size of the actual dquots. We already have a log reservation
> definition for this operation (tr_qm_dqalloc). Use it in
> xfs_qm_dqread() and update the log reservation calculation function
> to use the write res. calculation function rather than reading the
> assumed to be pre-calculated value directly.
> Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>

Looks good to me as well.

Reviewed-by: Ben Myers <bpm@xxxxxxx>

<Prev in Thread] Current Thread [Next in Thread>