[Top] [All Lists]

Re: [RFC PATCH 4/4] xfs: implement parallism quota check

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [RFC PATCH 4/4] xfs: implement parallism quota check
From: Jeff Liu <jeff.liu@xxxxxxxxxx>
Date: Mon, 18 Nov 2013 20:41:09 +0800
Cc: "xfs@xxxxxxxxxxx" <xfs@xxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20131118110449.GB1304@xxxxxxxxxxxxx>
References: <5281F527.3040200@xxxxxxxxxx> <20131115172626.GD16942@xxxxxxxxxxxxx> <5288BE14.1050302@xxxxxxxxxx> <20131118110449.GB1304@xxxxxxxxxxxxx>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120410 Thunderbird/11.0.1
On 11/18 2013 07:04 PM, Christoph Hellwig wrote:

> On Sun, Nov 17, 2013 at 09:01:08PM +0800, Jeff Liu wrote:
>> On 11/16 2013 01:26 AM, Christoph Hellwig wrote:
>>> As Dave pointed out this really should be xfs_bukstat_ag.  But looking
>>> at the code you're almost 90% there anyway.
>> One main reason I did not make a per ag bulkstat is because bulkstat() will
>> skip an allocation group if read agi buffer failed, i.e,
>> while (XFS_BULKSTAT_UBLEFT(ubleft) && agno < mp->m_sb.sb_agcount) {
>>      cond_resched();
>>      error = xfs_ialloc_read_agi(mp, NULL, agno, &agbp);
>>      if (error) {
>>              /*
>>               * Skip this allocation group and go to the next one.
>>               */
>>              agno++;
>>                 agino = 0;
>>              continue;
>>      }
>>      ....
>> }
>> Should it capture this issue and drop a warning in this case?
> I've been thinking hard about this, but I can't really see any reason
> why we would skip an AG instead of propagating the error.  The only
> error xfs_ialloc_read_agi can return is an I/O error from reading
> the buffer from disk, and we'd really want to propagate that sort
> of I/O errror.  I'd suggest a patch at the beginning of the series
> to just change that behavior for all the two places in bulkstat that
> call xfs_ialloc_read_agi.  None of the other callers seem to behave
> this way either.

Ok, thanks for clearing up my confusion.


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