Re: x86_64: 32bit emulation problems

Trond Myklebust
2005-03-02T09:13:52Z

on den 02.03.2005 Klokka 09:18 (+0100) skreiv Andi Kleen:
> On Wed, Mar 02, 2005 at 12:46:23AM +0100, Andreas Schwab wrote:
> > Bernd Schubert <bernd-schubert@web.de> writes:
> >
> > > Hmm, after compiling with -D_FILE_OFFSET_BITS=64 it works fine. But why does
> > > it work without this option on a 32bit kernel, but not on a 64bit kernel?
> >
> > See nfs_fileid_to_ino_t for why the inode number is different between
> > 32bit and 64bit kernels.
>
> Ok that explains it. Thanks.
>
> Best would be probably to just do the shift unconditionally on 64bit kernels
> too.
>
> Trond, what do you think?

Why would this be more appropriate than defining __kernel_ino_t on the
x86_64 platform to be of the size that you actually want the kernel to
support?

I can see no good reason for truncating inode number values on platforms
that actually do support 64-bit inode numbers, but I can see several
reasons why you might want not to (utilities that need to detect hard
linked files for instance).

Cheers,
Trond
--
Trond Myklebust <trond.myklebust@fys.uio.no>