This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: [PATCH] for glibc-2.2 linux-specific getdents code
- To: drepper at cygnus dot com (Ulrich Drepper)
- Subject: Re: [PATCH] for glibc-2.2 linux-specific getdents code
- From: Trond Myklebust <trond dot myklebust at fys dot uio dot no>
- Date: Tue, 13 Feb 2001 18:30:58 +0100 (CET)
- Cc: libc-alpha Mailinglist <libc-alpha at sourceware dot cygnus dot com>, Mogens Kjaer <mk at crc dot dk>
- References: <14985.16545.534824.671075@charged.uio.no><m3bss65w94.fsf@otr.mynet.cygnus.com>
- Reply-To: trond dot myklebust at fys dot uio dot no
>>>>> " " == 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