xfs
[Top] [All Lists]

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

To: Brian Foster <bfoster@xxxxxxxxxx>, xfs@xxxxxxxxxxx
Subject: Re: [PATCH v2] xfs: use tr_qm_dqalloc log reservation for dquot alloc
From: Jeff Liu <jeff.liu@xxxxxxxxxx>
Date: Wed, 22 Jan 2014 12:44:59 +0800
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: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0
On 01/20 2014 22:29 PM, 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>

Reviewed-by: Jie Liu <jeff.liu@xxxxxxxxxx>


Thanks,
-Jeff

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