In a message to the Linux Kernel Mailing List yesterday, founding developer Linus Torvalds warned the world not to use the 5.12-rc1 kernel in his public git tree.
Hey peeps – some of you may have already noticed that in my public git tree, the “v5.12-rc1” tag has magically been renamed to “v5.12-rc1-dontuse”. It’s still the same object, it still says “v5.12-rc1” internally and it is still is signed by me, but the user-visible name of the tag has changed.
As it turns out, when Linus Torvalds flags some code dontuse
, he really means it—the problem with this 5.12 release candidate broke swapfile handling in a very unpleasant way. Specifically, the updated code would lose the proper offset pointing to the beginning of the swapfile. Again, in Torvalds’ own words, “swapping still happened, but it happened to the wrong part of the filesystem, with the obvious catastrophic end results.”
If your imagination is insufficient, this means that when the kernel paged contents of memory out to disk, the data would land on random parts of the same disk and partition the swapfile lived on… not as files, mind you, but as garbage spewed directly to raw sectors on the disk. This means overwriting not only data in existing files, but also rather large chunks of metadata whose corruption would likely render the entire filesystem unmountable and unusable.