[PATCHSET v29.2 1/7] xfs: live inode scans for online fsck

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

 



Hi all,

The design document discusses the need for a specialized inode scan
cursor to manage walking every file on a live filesystem to build
replacement metadata objects while receiving updates about the files
already scanned.  This series adds three pieces of infrastructure -- the
scan cursor, live hooks to deliver information about updates going
on in other parts of the filesystem, and then adds a batching mechanism
to amortize AGI lookups over a batch of inodes to improve performance.

If you're going to start using this code, I strongly recommend pulling
from my git trees, which are linked below.

This has been running on the djcloud for months with no problems.  Enjoy!
Comments and questions are, as always, welcome.

--D

kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=scrub-iscan
---
Commits in this patchset:
 * xfs: speed up xfs_iwalk_adjust_start a little bit
 * xfs: implement live inode scan for scrub
 * xfs: allow scrub to hook metadata updates in other writers
 * xfs: stagger the starting AG of scrub iscans to reduce contention
 * xfs: cache a bunch of inodes for repair scans
 * xfs: iscan batching should handle unallocated inodes too
---
 fs/xfs/Kconfig       |    5 
 fs/xfs/Makefile      |    2 
 fs/xfs/scrub/iscan.c |  738 ++++++++++++++++++++++++++++++++++++++++++++++++++
 fs/xfs/scrub/iscan.h |   81 +++++
 fs/xfs/scrub/trace.c |    1 
 fs/xfs/scrub/trace.h |  145 ++++++++++
 fs/xfs/xfs_hooks.c   |   52 ++++
 fs/xfs/xfs_hooks.h   |   65 ++++
 fs/xfs/xfs_iwalk.c   |   13 -
 fs/xfs/xfs_linux.h   |    1 
 10 files changed, 1092 insertions(+), 11 deletions(-)
 create mode 100644 fs/xfs/scrub/iscan.c
 create mode 100644 fs/xfs/scrub/iscan.h
 create mode 100644 fs/xfs/xfs_hooks.c
 create mode 100644 fs/xfs/xfs_hooks.h





[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