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

Christoph Hellwig
2019-02-14T08:17:01Z

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?