Coda File System

Re: coda on amd64?

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Sat, 3 Jan 2004 01:00:00 -0500
On Fri, Jan 02, 2004 at 10:58:53PM +1030, Brett Lymn wrote:
> Does coda run on any other 64bit architectures?  Should I just update
> to coda6 and try my luck? (the only reason I am using coda5 is that it

Coda isn't 64-bit clean. I've already worked my way through LWP and RVM
which are working fine on an old 64-bit DEC Alpha machine. The kernel
module is 'probably' ok on Linux. People have successfully built and ran
earlier versions of Coda on sparc64 with a 64-bit kernel, but compiling
Coda userspace in a 32-bit compatibility mode.

The biggest problem is really RPC2, which defines RPC2_Integer as a
signed long integer. This percolates all throughout the rest of the code
and causes serious problems because all the data structures end up not
matching with other 32-bit clients (and probably the kernel module).

Simply changing the RPC2_Integer typedef results in hundreds of compiler
warnings and leaves several things unresolved, should file lenghts be
32-bit as with the existing systems or become 64-bit and break
compatibility. It also causes many problematic cases caused by casts
that do something like, (long *)&rpc2_integer_type, which works just
fine on a 32-bit machine where sizeof(long) == sizeof(int), but
introduces a pretty serious bug on 64-bit machines. And as the casts
hide the compiler warnings, this goes mostly unnoticed until we try to
use the value and get bad data, or when we silently corrupt adjacent
memory by storing new data to the 'long *'.

Jan
Received on 2004-01-03 01:01:21