xfs: don't write a corrupt unmount record to force summary counter recalc
authorDarrick J. Wong <darrick.wong@oracle.com>
Thu, 26 Mar 2020 17:26:44 +0000 (10:26 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Fri, 27 Mar 2020 15:32:55 +0000 (08:32 -0700)
commit5cc3c006eb45524860c4d1dd4dd7ad4a506bf3f5
tree8809895a4919094a26906a454c4f6079192346fb
parent5806165a6663544ea41bc3216f5c5effbde4799e
xfs: don't write a corrupt unmount record to force summary counter recalc

In commit f467cad95f5e3, I added the ability to force a recalculation of
the filesystem summary counters if they seemed incorrect.  This was done
(not entirely correctly) by tweaking the log code to write an unmount
record without the UMOUNT_TRANS flag set.  At next mount, the log
recovery code will fail to find the unmount record and go into recovery,
which triggers the recalculation.

What actually gets written to the log is what ought to be an unmount
record, but without any flags set to indicate what kind of record it
actually is.  This worked to trigger the recalculation, but we shouldn't
write bogus log records when we could simply write nothing.

Fixes: f467cad95f5e3 ("xfs: force summary counter recalc at next mount")
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
fs/xfs/xfs_log.c