Mounting an old FFSv1 file system warning

Why do I get this warning?

Sometimes when mounting a file system, the kernel will output the following warning:

root on wd0a dumps on wd0b
CGSIZE(fs) miscalculated by one - this file system may have been created by
  an old (buggy) userland, see
  http://www.NetBSD.org/docs/ffsv1badsuperblock.html
root file system type: ffs
	

or an even more scary version:

# mount /home
mount_ffs: /dev/raid2a on /home: incorrect super block
ERROR: cylinder group size mismatch: fs_cgsize = 0x4800, fs->fs_cgsize = 0x4000, CGSIZE(fs) = 0x4003
	

which prevents using the disk completely.

This originally was suspected to happen when the file system has been created with a very ancient newfs utility - the bug causing this mis-setup was fixed in revision 1.96 of src/sbin/newfs/mkfs.c, on January 11, 2006.

But later analysis resulted in a fix of the slightly over-eager sanity check done by the kernel.

Is emergency action needed?

If you get the first form and can still mount the file system: no, you can just ignore the issue. The second variant of the error prevents usage of the filesystem, so you need to upgrade your kernel (see below).

What is the (long term) recommended action to solve the issue?

Assuming the affected file system is not actually of the ancient (broken) variant created with a pre-2006 binary: install a newer kernel. You should only see this message on some versions of -current, so upgrading to a recent -current kernel (newer than october 22, 2015) should fix it.

Otherwise: back up all your data from this partition, use a modern newfs(8) to recreate the filesystem and restore the data.