I'm in the process or building a new machine at work (more details later) and I stumbled upon a really annoying "feature" of NFSv4 on Linux (I've only tried RHEL4 and SLES10).

It seems you can't expect to export the filesystem as you did with NFSv3 and earlier and then mount it in exactly the same way. Oh no, to quote their own words:

NFSv4 no longer has a separate "mount" protocol. Instead of exporting a number of distinct exports, an NFSv4 client sees the NFSv4 server's exports as existing inside a single filesystem, called the nfsv4 "pseudofilesystem".

That means if you share /export/tmp from a Linux host running NFSv4, in order to mount it you need to run "mount linuxhost:/ /mnt/foo". This is illogical behaviour.

This also wreaks havoc with automountd on Solaris which doesn't implement the Linux thinking as Solaris doesn't. Solaris exports NFSv4 filesystems as it does with NFSv3 and earlier - none of this "pseudofilesystem" crap. What were the developers thinking?

One thing is nice to know, they've acknowledged this is a problem that needs fixing, but it seems no one has pulled finger just yet.

My solution - use NFSv3. Disabling NFSv4 on SLES10 is easy (see /etc/sysconfig/nfs), but I've not worked out how to do is on RHEL4 yet though