[lkml]   [2001]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Compatibility issue with 2.2.19pre7
Trond Myklebust wrote:
> As for the issue of casting 'fh->data' as a 'struct knfsd' then that
> is a perfectly valid operation.
No it isn't.

fh->data is an array of characters, thus without any alignment
'struct knfsd' begins with a pointer, thus it must be 4 or 8 byte

The portable 'struct nfs_fh' structure would be

struct nfs_fh
unsigned short len;
void* data[NFS_HANDLESIZE/sizeof(void*)];
But now its too late for such a change - it breaks at least i386,
probably all platforms.

Does knfsd actually need all 64 bytes in the nfs_fh?
What about aligning the 'struct knfsd' manually?

- struct knfsd* ptr = fh->data;
+ struct knfsd* ptr = (fh->data+15)&(~15);

That would be kernel only, no ABI problems.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:28    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean