nfs on RHEL5.4 in relation to the selected kernel

I have 2 RHEL5.4 systems connected by a network.
I start nfs server on one (fill /etc/exports , exportfs -ra, service nfs start, portmpa is up) and the client is on the other . I can mount the exported
directory on the client and work there .

Now the RH54 kernel is 2.6.18 . I now installed on the server side a new compiled kernel 2.6.30 because I need kvm . I do not use kvm yet just work at the host level.
I compiled the new kernel with same NFS flags as in the original RH kernel i.e same .config CONFIG_NFS_* values working with the make oldconfig as needed . Then rebooted the system and performed on the server side same operations as did first time to start the nfs server (/etc/exports is there , exportfs -ra, service nfs start . portmap is up there at boot) .
This time a mount request for the nfs directory on the client machine
returned an error : failed, reason given by server: Permission denied

I am working as root on both the client and server. The /var/log/messages
does not show any error just that nfs is up and "authenticated mount request from <client ip> for /export/dir" as in the succesful case .
In both cases /proc/fs/nfs/exports shows the right info (exort dir .. <IP>)
/var/lib/nfs/xtab is EMPTY in both cases (good and bad) ?!
/etc/host is holding the correct clinet and its hostname .

The only diff I find is that in the original RH kernel case , after mount is ok
issuing "dmesg | grep nfs" gives diffrent info than in the bad mount
as follows:

good case

dmesg | grep nfs

SELinux: initialized (dev usbfs, type usbfs), uses genfs_contexts
SELinux: initialized (dev debugfs, type debugfs), uses genfs_contexts
SELinux: initialized (dev selinuxfs, type selinuxfs), uses genfs_contexts
SELinux: initialized (dev hugetlbfs, type hugetlbfs), uses genfs_contexts
SELinux: initialized (dev inotifyfs, type inotifyfs), uses genfs_contexts
SELinux: initialized (dev futexfs, type futexfs), uses genfs_contexts
SELinux: initialized (dev anon_inodefs, type anon_inodefs), uses genfs_contexts
SELinux: initialized (dev cpuset, type cpuset), uses genfs_contexts
SELinux: initialized (dev proc, type proc), uses genfs_contexts
SELinux: initialized (dev bdev, type bdev), uses genfs_contexts
SELinux: initialized (dev rootfs, type rootfs), uses genfs_contexts
SELinux: initialized (dev sysfs, type sysfs), uses genfs_contexts
SELinux: initialized (dev rpc_pipefs, type rpc_pipefs), uses genfs_contexts
SELinux: initialized (dev binfmt_misc, type binfmt_misc), uses genfs_contexts
SELinux: initialized (dev autofs, type autofs), uses genfs_contexts
SELinux: initialized (dev autofs, type autofs), uses genfs_contexts
SELinux: initialized (dev autofs, type autofs), uses genfs_contexts
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
SELinux: initialized (dev nfsd, type nfsd), uses genfs_contexts
NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory

bad case

dmesg | grep nfs

calling  init_nfs_fs+0x0/0x116 @ 1
initcall init_nfs_fs+0x0/0x116 returned 0 after 139 usecs
calling  init_nfsd+0x0/0xe3 @ 1
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
initcall init_nfsd+0x0/0xe3 returned 0 after 5239 usecs
NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory

Any idea how to solve this nfs mount issue ?

thanks

I am wondering if this is NFS V4 related, if you do not require the speed/security enhancements of NFS V4 you could try getting both ends to use NFS V3 instead.

This: RHEL5 Administration - 18.2.*NFS Client Configuration
Suggests specifying the NFS version while specifying that the mount is NFS, so try dropping down to NFSv3, it would at least prove that either way?

You went from a 2.6.18 to a 2.6.30 kernel. Did you update any of the NFS user space libraries and utilities to work with your new kernel?