[GIT PULL 6/18] xfs: online repair for fs summary counters

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Chandan,

Please pull this branch with changes for xfs for 6.9-rc1.

As usual, I did a test-merge with the main upstream branch as of a few
minutes ago, and didn't see any conflicts.  Please let me know if you
encounter any problems.

--D

The following changes since commit a1f3e0cca41036c3c66abb6a2ed8fedc214e9a4c:

xfs: update health status if we get a clean bill of health (2024-02-22 12:33:04 -0800)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/repair-fscounters-6.9_2024-02-23

for you to fetch changes up to 4ed080cd7cb077bbb4b64f0712be1618c9d55a0d:

xfs: repair summary counters (2024-02-22 12:33:05 -0800)

----------------------------------------------------------------
xfs: online repair for fs summary counters [v29.3 06/18]

A longstanding deficiency in the online fs summary counter scrubbing
code is that it hasn't any means to quiesce the incore percpu counters
while it's running.  There is no way to coordinate with other threads
are reserving or freeing free space simultaneously, which leads to false
error reports.  Right now, if the discrepancy is large, we just sort of
shrug and bail out with an incomplete flag, but this is lame.

For repair activity, we actually /do/ need to stabilize the counters to
get an accurate reading and install it in the percpu counter.  To
improve the former and enable the latter, allow the fscounters online
fsck code to perform an exclusive mini-freeze on the filesystem.  The
exclusivity prevents userspace from thawing while we're running, and the
mini-freeze means that we don't wait for the log to quiesce, which will
make both speedier.

This has been running on the djcloud for months with no problems.  Enjoy!

Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>

----------------------------------------------------------------
Darrick J. Wong (1):
xfs: repair summary counters

fs/xfs/Makefile                  |  1 +
fs/xfs/scrub/fscounters.c        | 27 +++++++--------
fs/xfs/scrub/fscounters.h        | 20 +++++++++++
fs/xfs/scrub/fscounters_repair.c | 72 ++++++++++++++++++++++++++++++++++++++++
fs/xfs/scrub/repair.h            |  2 ++
fs/xfs/scrub/scrub.c             |  2 +-
fs/xfs/scrub/trace.c             |  1 +
fs/xfs/scrub/trace.h             | 21 +++++++++---
8 files changed, 128 insertions(+), 18 deletions(-)
create mode 100644 fs/xfs/scrub/fscounters.h
create mode 100644 fs/xfs/scrub/fscounters_repair.c





[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux