HomeFreeBSD

Provide cache coherency between getnextinode() and ginode()

Description

Provide cache coherency between getnextinode() and ginode()

The fsck_ffs(8) utility has two subsystems for reading and writing
inodes. The getnextinode() interface is used in Pass 1 (and Pass
1b if needed) to sequentially walk through all the inodes in the
filesystem. The ginode() interface is used to read and write
individual inodes. Pass 1 uses a mix of both interfaces. This
change ensures that ginode() returns a pointer to the inode in the
cache maintained by getnextinode() when that interface holds the
requested inode so that all modifications to the inode are made in
a single place and are all written to the disk together.

Reported by: Peter Holm
Tested by: Peter Holm
Sponsored by: The FreeBSD Foundation

Details

Provenance
mckusickAuthored on Aug 24 2022, 6:48 AM
Parents
rGbe639cc8eef0: Update standard superblock when successful using an alternate superblock.
Branches
Unknown
Tags
Unknown