Re: [PATCH 3/3] xfs: reserve blocks for ifree transaction during log recovery

Darrick J. Wong
2019-02-14T15:59:42Z

On Thu, Feb 14, 2019 at 12:17:00AM -0800, Christoph Hellwig wrote:
> On Wed, Feb 13, 2019 at 12:50:59PM -0800, Darrick J. Wong wrote:
> > From: Darrick J. Wong <darrick.wong@oracle.com>
> >
> > Log recovery frees all the inodes stored in the unlinked list, which can
> > cause expansion of the free inode btree. The ifree code skips block
> > reservations if it thinks there's a per-AG space reservation, but we
> > don't set up the reservation until after log recovery, which means that
> > a finobt expansion blows up in xfs_trans_mod_sb when we exceed the
> > transaction's block reservation.
> >
> > To fix this, we set the "no finobt reservation" flag to true when we
> > create the xfs_mount and only set it to false if we confirm that every
> > AG had enough free space to put aside for the finobt.
> >
> > While we're at it we change the flag name to be clearer about what it
> > actually does.
>
> Looks good:
>
> Reviewed-by: Christoph Hellwig <hch@lst.de>
>
> But throwing in the field rename makes the patch way bigger and
> not as obvious to understand. Any reason it can't be split into
> a separate patch?

Ok, I'll separate the two.

--D