Re: rfc: handle broken /proc/swaps

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Oct 10, 2009 at 11:34:18PM -0400, Mike Frysinger wrote:
> i dont see any mention of this issue in the util-linux-ng archives (or i cant 
> search), but linux-2.6.19 and older had a bug in the /proc/swaps code where 

 yeah, I have never seen this problem.

> 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" 
> reason it triggers for me all the time (no swap calls).
> 
> there are two aspects to the issue ... the first of which i think we should 
> handle while i'm on the fence about the second.
> 
> first, i dont think we should 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().

 The file is empty for kernel <= 2.6.19, right? It seems that the
 current mm/swapfile.c implementation always returns the header line.

> second, we could detect that the first line we read isnt actually the header 
> but instead is a valid swap line and so needs processing.  this relies on the 
> assumption 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.

 OK. Please, send a real patch :-)

    Karel
 
--
To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux