xfs
[Top] [All Lists]

Re: Filestreams (and 64bit inodes)

To: markgw@xxxxxxx
Subject: Re: Filestreams (and 64bit inodes)
From: Greg Banks <gnb@xxxxxxxxxxxxxxxxx>
Date: Fri, 13 Jun 2008 13:40:29 +1000
Cc: Eric Sandeen <sandeen@xxxxxxxxxxx>, Timothy Shimmin <tes@xxxxxxx>, Richard Scobie <richard@xxxxxxxxxxx>, xfs@xxxxxxxxxxx
In-reply-to: <4851E774.2070401@xxxxxxx>
Organization: File Serving Technologies ; Silicon Graphics Inc.
References: <484B15A3.4030505@xxxxxxxxxxx> <484CA425.3080606@xxxxxxxxxxx> <484DDDB3.70000@xxxxxxx> <484F0998.90306@xxxxxxxxxxx> <484F2CD7.9070506@xxxxxxx> <484F452A.8090909@xxxxxxxxxxx> <48512A34.1020604@xxxxxxxxxxx> <4851CD32.7080106@xxxxxxxxxxxxxxxxx> <4851E774.2070401@xxxxxxx>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Thunderbird 1.5.0.12 (X11/20060911)
Mark Goodwin wrote:
>
>
> Greg Banks wrote:
>> Eric Sandeen wrote:
>>>    4070 29.1% are scripts (shell, perl, whatever)
>>>    6598 47.2% don't use any stat() family calls at all
>>>    1829 13.1% use 32-bit stat() family interfaces only
>>>    1312  9.4% use 64-bit stat64() family interfaces only
>>>     180  1.3% use both 32-bit and 64-bit stat() family interfaces
>>>
>> Ouch.  That's over two thousand executables to patch, rebuild, and ship.
>>> list of packages, sorted by the semi-lame "number of files in package
>>> which call a 32-bit stat variant" metric:
>>>
>>> http://sandeen.fedorapeople.org/stat32-ers
>
> struct dirent has an embedded ino_t too, so for completeness we should
> also
> be looking for readdir(), readdir64(), getdirentries(),
> getdirentries64(), etc.
Good point.  Looking in the code, it seems the getdents common code in
glibc will fail with EOVERFLOW if the inode number gets truncated during
64b-32b translation, just like the stat() family.  I'll need to improve
the scanning tool :-)
>
>>> I'm going to see if I can't leverage Fedora to clean some of this up.
>>>
>>> -Eric
>>>
>> Good luck with that.
>
> Yes good luck :)
> (and the plan for statically linked apps? ...)

Perhaps Fedora could enable the glibc magic for issuing warnings at link
time when those symbols are used, like what happens today if you use the
old unsafe gets() function:

gnb@inara 1058> gcc -o fmeh x.c
/tmp/ccQhxIIo.o: In function `main':
x.c:(.text+0x18): warning: the `gets' function is dangerous and should not be 
used.




-- 
Greg Banks, P.Engineer, SGI Australian Software Group.
The cake is *not* a lie.
I don't speak for SGI.


<Prev in Thread] Current Thread [Next in Thread>