As far as I know, there is no easy way to list all symlinks pointing to an inode. Therefore I would recommend using the standard find utility with the -L and -samefile switches:
- -samefile will compare based on the inode of your target file,
- -L will include symbolic links in the search, which is what you are looking for.
Here is an example with /bin/dash in /bin:
$ find -L /bin -samefile /bin/dash -exec ls -lhi {} \;
786515 lrwxrwxrwx 1 root root 4 Mar 29 2012 /bin/sh -> dash
786436 -rwxr-xr-x 1 root root 108K Mar 29 2012 /bin/dash
From this output, you can see both with the inode number (first column) and the arrow (last one) that /bin/sh in a symlink to the /bin/dash. If they were hardlinks, inode number would be the same for different files and there would be no arrow in the last column.
Finally, If I had the need to look for these links on a whole filesystem, I would exclude some directories such as /dev, /proc and /sys from the search. This would be done with the -path and -prune swicthes (you can add as many as you want with -o switch meaning or), 2>/dev/null is here to mask potential errors:
$ sudo find -L / \( -path /dev -o -path /proc -o -path /sys \) -prune -samefile /bin/dash -exec ls -lhi {} \; 2>/dev/null
As searching in a entire filesystem can take a lot of time (mainly depending on its size) I will consider this option as a last resort. It is like searching a needle in a haystack: it is not impossible but takes a lot of effort...