@raphaelsc
I already had implemented symlinks on my ghost-based filesystem called lionfs.
I used fake files, which are created as nodeids in FUSE but they are not deleted (behind FUSE).
However "fakefiles" is a good way, because readlink() need to return a file name (path) for any syscall made in a symlink.
Other suggestions?