On Tue, May 31, 2016 at 09:32:55PM +0200, Christoph Hellwig wrote: > These fields are separate from the existing roots and levels array > and thus need a separate logging flag. > > That being said the API to logs the AGI/AGF is a bit of a nightmare, > and I have an idea how to improve it. Stay tuned.. Looks good, tests great!, Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> (Will keep ears open.) --D > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > fs/xfs/libxfs/xfs_alloc.c | 4 ++++ > fs/xfs/libxfs/xfs_format.h | 5 ++++- > fs/xfs/libxfs/xfs_refcount_btree.c | 3 ++- > 3 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c > index 6cbca1b..e6e32c2 100644 > --- a/fs/xfs/libxfs/xfs_alloc.c > +++ b/fs/xfs/libxfs/xfs_alloc.c > @@ -2327,6 +2327,10 @@ xfs_alloc_log_agf( > offsetof(xfs_agf_t, agf_longest), > offsetof(xfs_agf_t, agf_btreeblks), > offsetof(xfs_agf_t, agf_uuid), > + offsetof(xfs_agf_t, agf_refcount_root), > + offsetof(xfs_agf_t, agf_refcount_level), > + /* needed so that we don't log the whole rest of the structure: */ > + offsetof(xfs_agf_t, agf_spare64), > sizeof(xfs_agf_t) > }; > > diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h > index e00037c..5cc0b8c 100644 > --- a/fs/xfs/libxfs/xfs_format.h > +++ b/fs/xfs/libxfs/xfs_format.h > @@ -681,7 +681,10 @@ typedef struct xfs_agf { > #define XFS_AGF_LONGEST 0x00000400 > #define XFS_AGF_BTREEBLKS 0x00000800 > #define XFS_AGF_UUID 0x00001000 > -#define XFS_AGF_NUM_BITS 13 > +#define XFS_AGF_REFCOUNT_ROOT 0x00002000 > +#define XFS_AGF_REFCOUNT_LEVEL 0x00004000 > +#define XFS_AGF_SPARE64 0x00008000 > +#define XFS_AGF_NUM_BITS 16 > #define XFS_AGF_ALL_BITS ((1 << XFS_AGF_NUM_BITS) - 1) > > #define XFS_AGF_FLAGS \ > diff --git a/fs/xfs/libxfs/xfs_refcount_btree.c b/fs/xfs/libxfs/xfs_refcount_btree.c > index 3391cbd..303f959 100644 > --- a/fs/xfs/libxfs/xfs_refcount_btree.c > +++ b/fs/xfs/libxfs/xfs_refcount_btree.c > @@ -61,7 +61,8 @@ xfs_refcountbt_set_root( > pag->pagf_refcount_level += inc; > xfs_perag_put(pag); > > - xfs_alloc_log_agf(cur->bc_tp, agbp, XFS_AGF_ROOTS | XFS_AGF_LEVELS); > + xfs_alloc_log_agf(cur->bc_tp, agbp, > + XFS_AGF_REFCOUNT_ROOT | XFS_AGF_REFCOUNT_LEVEL); > } > > STATIC int > -- > 2.1.4 > > _______________________________________________ > xfs mailing list > xfs@xxxxxxxxxxx > http://oss.sgi.com/mailman/listinfo/xfs _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs