On 02/18/2013 01:33 PM, Eric Sandeen wrote:
> XFS recently defaulted to allowing > 32 bit inode numbers, and btrfs can let 
> inode numbers creep past 2^32 as well.
> 
> While most applications don't care one bit about st_ino returned from a 
> stat() call, the sad fact is that you'll get EOVERFLOW from stat32 if the 
> inode number is too big to fit in 32 bits, even if you just wanted to get the 
> file size.
[snip]
> Anyway, if you want to check your package(s) and maybe make them 64-bit-stat 
> safe, the perl script above might help.  It's more than just 
> -DFILE_OFFSET_BITS=64, since you'll need to be sure not to overflow any large 
> values you get back from stat64 etc.
> 
> Might be nice to get out ahead of this before, say, btrfs comes into wide 
> use.  I don't know if there could be any more of a formal effort in this 
> direction?

> p.s. here's a list of what was on my system that turned up hits:
[snip list of several dozen packages that are affected]


It would be useful to have a "backward compatibility" LD_PRELOAD shared
library which intercepts the caller of stat32, and sets .st_ino to 0,
without generating EOVERFLOW, whenever the actual inode number exceeds
32 bits.  This would allow the *option* of continued operation
(postponing the work of portability enhancements) for the vast majority
of packages which do use stat() but do not inspect .st_ino.

-- 


-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Reply via email to