On 10/11/2012 11:35 AM, M. Mohan Kumar wrote:
As part of BD xlator symlink interface testing, I figured out that the parameter 'linkname' contains even the mount point for example '/media/link'. I wonder we should never get the mount directory in the server part of code. I tested creating symlink with posix xlator with top git commit 751da4675cf3add21e567aebb92de2c10457afee. Here is the steps I followed: [root@host mohan]# mount -t glusterfs host:/posix /media [root@host mohan]# ls -la /media/ total 8 drwx------. 3 root root 4096 Oct 11 11:15 . dr-xr-xr-x. 20 root root 4096 Sep 28 16:40 .. [root@host mohan]# touch /media/file [root@host mohan]# ln -s /media/file /media/link [root@host mohan]# ls -la /media/ total 9 drwx------. 3 root root 4096 Oct 11 11:18 . dr-xr-xr-x. 20 root root 4096 Sep 28 16:40 .. -rw-r--r--. 1 root root 0 Oct 11 11:18 file lrwxrwxrwx. 1 root root 11 Oct 11 11:18 link -> /media/file [root@host mohan]# umount /media [root@host mohan]# mount -t glusterfs host:/posix /media/posix [root@host mohan]# ls -la /media/posix/ total 9 drwx------. 3 root root 4096 Oct 11 11:18 . drwxr-xr-x. 4 root root 4096 Oct 11 07:55 .. -rw-r--r--. 1 root root 0 Oct 11 11:18 file lrwxrwxrwx. 1 root root 11 Oct 11 11:18 link -> /media/file Directory listing of brick from server side [root@host mohan]# ls -la ~/gl/posix/ total 24 drwx------. 3 root root 4096 Oct 11 11:18 . drwx------. 4 root root 4096 Sep 28 20:20 .. -rw-r--r--. 2 root root 0 Oct 11 11:18 file drw-------. 12 root root 4096 Oct 11 11:18 .glusterfs lrwxrwxrwx. 2 root root 11 Oct 11 11:18 link -> /media/file Ideally it should be link -> file instead of /media/file
It the same behavior on backend fs also... I don't see it as a problem in GlusterFS.
----snip---- [root@unused data]# mount fs1 /mnt/a/ [root@unused data]# df -h /mnt/a Filesystem Size Used Avail Use% Mounted on /dev/loop0 9.9G 151M 9.2G 2% /mnt/a [root@unused data]# cd /mnt/a [root@unused a]# echo hello > file [root@unused a]# ln -s /mnt/a/file abcd [root@unused a]# ls -l total 20 lrwxrwxrwx. 1 root root 11 Oct 11 12:05 abcd -> /mnt/a/file -rw-r--r--. 1 root root 6 Oct 11 12:04 file [root@unused a]# cd [root@unused ~]# umount /mnt/a [root@unused ~]# cd /data [root@unused data]# mount fs1 /mnt/b [root@unused data]# ls -l /mnt/b total 20 lrwxrwxrwx. 1 root root 11 Oct 11 12:05 abcd -> /mnt/a/file -rw-r--r--. 1 root root 6 Oct 11 12:04 file [root@unused data]# ---- snip ----
When I remounted with a different directory symlink is broken. Ideally it should not create symlink with client mount directory details or am I missing some thing here?