-
Mano Segransan authored
Add a function to check that each rain stripe can successfully reconstruct the original file. It checks every possible stripe combination to see if the resulting file has the correct checksum. A standalone executable is also available to manually check for theses errors. The fsck error map had to be changed from a map<fsid, fid> to a map<fid, fsid> as there can be multiple invalid stripes, which all need to be fixed at once. Update CommitHelper to support multiple dropfsids. Remove unused statistics collection on the fsts. Fix buffer overflow in FsckEntry::RepairFstXsSzDiff when diskchecksum is empty. Fix issue with rain reconstruction where the reconstructed stripes were invalid on non xfs filesystems. This was caused by a bookingsize of 1024 which triggered an fallocate before recovering the first group of the stripe. fallocate on non xfs filesystems is done with posix_fallocate which reserves the space by filling the file with zeroes. This then cause the read of the first group to succeed, which causes it to not be detected as corrupted, and skips the recovery. This is fixed by settings the bookingsize to 0 for pio reconstruct.
a7836423