As part of the work to integrate FFS2 support, there have been several
changes to the filesystem code.  Unfortunately, there are cases where
it may cause data corruption.

The problematic change was altering the format of the on disk
superblock.  FFS2 uses a slightly different superblock than FFS1 used.
 As of two weeks ago, the kernel would automatically upgrade the
superblock to the new format, setting a flag that it had done so. 
Several fields in the block became redundant.

The userland utilities were not updated to work with this new format,
but instead would remove the flag, meaning the kernel would again read
the old fields and upgrade.  The problem is that fsck was not taught
to remove the flag until several days after the kernel was taught to
upgrade.  Meaning booting a new kernel but running old fsck could
result in superblock corruption because they were operating on
different structures.

The window of danger was booting a kernel from any time _after_ 2
weeks ago and running a fsck from any time _before_ 4 days ago.  If
you have booted a new kernel, do not use the old fsck.

I have backed out the new superblock changes.  The next snapshot will
not upgrade the superblock and will simply use the old format.  You
are encouraged to move away from any snapshot installed in the last 2
weeks.

Reply via email to