]> err.no Git - util-linux/commit
swapon: handle <=linux-2.6.19 bug in /proc/swaps
authorMike Frysinger <vapier@gentoo.org>
Tue, 13 Oct 2009 10:05:19 +0000 (06:05 -0400)
committerKarel Zak <kzak@redhat.com>
Tue, 13 Oct 2009 12:03:46 +0000 (14:03 +0200)
commitd08cd85fad8b6a3e2aaaeac61afb0e19564ac7d7
treeae0c8ac26d444edfce46b1dcae03c1f16a7594aa
parent304762d663608bbda4661c87d298d77c0629da5e
swapon: handle <=linux-2.6.19 bug in /proc/swaps

Linux <=2.6.19 contained a bug in the /proc/swaps code where the header
would not be displayed (the first line).  Most people report the issue as
a sequence of swapon/swapoff calls to trigger, but for some lucky people,
it triggers all the time at initial boot.  Since this throws up an error,
init systems don't actually activate any swap files.

First, swapon shouldn't whine about unexpected format if the file is empty
(the default at boot).  This is easy to do by putting the warning behind a
check to ferror().

Second, we can detect that the first line isn't actually the header but
instead is a valid swap line and so need to be processed.  This assumes
that the first line will always be the same format.  Looking quickly at
older versions shows that this header has retained its exact format since
at least Linux 2.2.0 and considering the concern that goes along with proc
files and the ABI, it's highly unlikely it will ever change.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
mount/swapon.c