Hello,
I compiled libnfs from last sources and tested it on my machine (last ubuntu 64bit). Compilation is okay.
I setup a local NFS export:
/home/test 127.0.0.1(rw,sync,no_subtree_check)
Mounting it works:
./rfuse-nfs -n nfs://
127.0.0.1/home/test -m ./fuse
(rfuse-nfs is just a wrapper for LD_LIBRARY_PATH as I just installed libnfs localy).
And it failed to show me symlinks:
$ ls -l ./fuse/
total 8
-rwx------ 1 hexasoft root 7 juil. 26 16:38 titi
-rw-r--r-- 1 hexasoft root 0 juil. 26 16:38 toto
-rwx------ 1 hexasoft root 7 juil. 26 16:38 tutu
Whereas performing the same on ./mnt with is a regular NFS mount of the same export I have:
$ ls -l ./mnt
total 4
-rwx------ 1 hexasoft root 7 juil. 26 16:38 titi
-rw-r--r-- 1 hexasoft root 0 juil. 26 16:38 toto
lrwxrwxrwx 1 root root 4 juil. 26 16:38 tutu -> titi
Differences are the "total" (8 for fuse, 4 for NFS), and of course file 'tutu' which is dereferenced instead of being seen as a symlink.
Dumping the st_mode from fuse_nfs_getattr() shows st_mode=0100700, so the 700 mode of 'titi' and th 100000 for "regular file".
Is there any tunning to don't follows symlinks? Is it related to the fact that my NFS server handles NFSv4 by default as seen here:
$ mount -t nfs 127.0.0.1:/home/test ./mnt/
$ grep mnt /proc/mounts
127.0.0.1:/home/test /home/hexasoft/Code/FUSE/mnt nfs4 rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1 0 0
At last when fuse-nfs is used I can see it in /proc/mounts:
fuse-nfs /home/hexasoft/Code/FUSE/fuse fuse.fuse-nfs rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions 0 0
but it don't appear in 'df' command.
Thanks for any help.
Regards,
--
Hexasoft