On 5/5/22 11:07 AM, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > Back when I originally wrote xfs_scrub, I decided that phase 3 (the file > scrubber) should try to open all regular files by handle to pin the file > during the scrub. At the time, I decided that an ESTALE return value > should cause the entire inode group (aka an inobt record) to be > rescanned for thoroughness reasons. > > Over the past four years, I've realized that checking the return value > here isn't necessary. For most runtime errors, we already fall back to > scrubbing with the file handle, at a fairly small performance cost. > > For ESTALE, if the file has been freed and reallocated, its metadata has > been rewritten completely since bulkstat, so it's not necessary to check > it for latent disk errors. If the file was freed, we can simply move on > to the next file. If the filesystem is corrupt enough that > open-by-handle fails (this also results in ESTALE), we actually /want/ > to fall back to scrubbing that file by handle, not rescanning the entire > inode group. > > Therefore, remove the ESTALE check and leave a comment detailing these > findings. > > Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> ohhhkay, tbh mostly trusting you n this but it all; sounds plausible ;) Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx>