[PATCH] for glibc-2.2 linux-specific getdents code

Trond Myklebust trond.myklebust@fys.uio.no
Tue Feb 13 09:31:00 GMT 2001


>>>>> " " == Ulrich Drepper <drepper@redhat.com> writes:

    >> with NFS allowing unsigned offsets, and returns an EOVERFLOW
    >> error as if the cookie were a large file offset if the 31st bit
    >> is set (and the getdents64() function is used).

     > Offsets by definition are unsigned.  You are changing the
     > interface of the kernel.  This is absolutely unacceptable.

No. NFS directory offsets have never been signed. They never were in
2.2.x, and they aren't in 2.4.x.

What's new is that the getdents64 function has surfaced and it plays
games with sign extending 32-bit offsets to 64 bits. This is why the
problem has arisen in 2.4.x and not 2.2.x

Cheers,
  Trond



More information about the Libc-alpha mailing list