Comment 8 for bug 556621

On Sat, 10 Apr 2010 12:04:33 -0000
Theodore Ts'o <email address hidden> wrote:
> We don't update the backup copies of the block group descriptor
> tables; we use the backup copies to retrieve static data so we can
> recover the file system, and how many of the inodes in a block group
> have been used/initialized is dynamic data.

Oh dear, so the kernel and fsck never update the backup copies? Seems
to defeat the purpose doesn't it? I mean if they are never updated,
why have them? Their initial content could be regenerated by mkfs -n
couldn't it?

So if fsck finds the main bg descriptor corrupt and isn't sure if the
inode table was zeroed or not, and happens to find old data that looks
like inodes in the uninitialized table, wouldn't it be highly likely
that such inodes would claim blocks that are either marked as free, or
allocated by other inodes? And these inodes would not have any
directory entries pointing to them, so wouldn't the worst case then be
that fsck places copies of garbage in lost+found, but no actual data
would be lost?

If the worst case scenario in the unlikely event of the bg descriptors
being corrupted is that fsck finds garbage data and puts it in
lost+found, then I don't see a downside to enabling this option.