Bug 651878

Summary: cifs: mfsymlinks support
Product: Red Hat Enterprise Linux 6 Reporter: Jeff Layton <jlayton>
Component: kernelAssignee: Jeff Layton <jlayton>
Status: CLOSED ERRATA QA Contact: Jian Li <jiali>
Severity: medium Docs Contact:
Priority: low    
Version: 6.0CC: bfields, eguan, jiali, metze, mpoole, nmurray, rwheeler, sandro, steved, yanwang
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: kernel-2.6.32-112.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 670819 677190 1053389 (view as bug list) Environment:
Last Closed: 2011-05-23 20:28:51 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 677190, 1053389    

Description Jeff Layton 2010-11-10 14:40:45 UTC
Support for Minshall-French symlinks was added upstream. Backport it for RHEL6:

http://www.spinics.net/lists/linux-cifs/msg00485.html

Comment 1 RHEL Program Management 2010-11-18 18:19:40 UTC
This request was evaluated by Red Hat Product Management for inclusion
in a Red Hat Enterprise Linux maintenance release. Product Management has 
requested further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed 
products. This request is not yet committed for inclusion in an Update release.

Comment 3 Jeff Layton 2010-12-01 18:18:21 UTC
To sanity test, mount a cifs share with '-o mfsymlinks,nounix'. Try to create and read a symlink on the share. After you create it, look at it on the server and verify that the file is of the correct size (1067 bytes).

You can also mount without -o nounix. If you do, then the client will be able to see "normal" symlinks on the share as well as mfsymlinks. If the client creates a symlink in this case, it will be mfsymlink however (IOW, you'll be unable to create a "normal" symlink when using the mfsymlinks mount option).

Comment 4 Aristeu Rozanski 2011-02-03 15:28:35 UTC
Patch(es) available on kernel-2.6.32-112.el6

Comment 7 Jian Li 2011-04-12 05:28:03 UTC
The bug is verified in RHEL-6.1. Test steps and results is as follows:

1. environment:
[root@ibm-hs22-04 ~]# uname -a
Linux ibm-hs22-04.rhts.eng.brq.redhat.com 2.6.32-130.el6.x86_64 #1 SMP Tue Apr 5 19:58:31 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@ibm-hs22-04 test]# ls -la
total 12
drwxrwxrwx. 3 root root 4096 Apr 12 01:16 .
drwxrwxrwx. 4 root root 4096 Apr 12 00:02 ..
lrwxrwxrwx. 1 root root    4 Apr 12 01:16 linkfromserver -> test
drwxr-xr-x. 2 root root 4096 Apr 12 01:16 test
[root@ibm-hs22-04 test]# pwd
/tmp/test

2. share '/tmp/test' with name of 'public' in smb.conf

3. create a smb user named root

4. mount and test with nounix
========MOUNT
[root@ibm-hs22-04 test]# mount.cifs //`hostname`/public /mnt -o user=root,nounix,mfsymlinks
Password: 
========MAKE LINK
[root@ibm-hs22-04 test]# cd /mnt[root@ibm-hs22-04 mnt]# ln -s test linkfromclient
========CHECK CLIENT
[root@ibm-hs22-04 mnt]# ls -la
total 12
drwxr-xr-x.  1 root root    0 Apr 12 01:23 .
dr-xr-xr-x. 22 root root 4096 Apr 11 23:41 ..
lrwxrwxrwx.  1 root root    4 Apr 12 01:18 linkfromclient -> test
drwxr-xr-x.  0 root root    0 Apr 12 01:21 linkfromserver
drwxr-xr-x.  0 root root    0 Apr 12 01:21 test
=======CHECK SERVER
[root@ibm-hs22-04 mnt]# ls -l /tmp/test
total 8
-rwxr--r--. 1 root root 1067 Apr 12 01:18 linkfromclient
lrwxrwxrwx. 1 root root    4 Apr 12 01:16 linkfromserver -> test
drwxr-xr-x. 2 root root 4096 Apr 12 01:16 test

5. mount and test without nounix
========MOUNT
[root@ibm-hs22-04 ~]# mount.cifs //`hostname`/public /mnt -o user=root,mfsymlinks
Password: 
========MAKE LINK
[root@ibm-hs22-04 mnt]# ln -s test linkfromclientwithoutnonunix
========CHECK CLIENT
[root@ibm-hs22-04 mnt]# ls -la
total 12
drwxrwxrwx.  3 root root    0 Apr 12 01:23 .
dr-xr-xr-x. 22 root root 4096 Apr 11 23:41 ..
lrwxrwxrwx.  1 root root    4 Apr 12 01:18 linkfromclient -> test
lrwxrwxrwx.  1 root root    4 Apr 12 01:23 linkfromclientwithoutnonunix -> test
lrwxrwxrwx.  1 root root    4 Apr 12 01:16 linkfromserver -> test
drwxr-xr-x.  2 root root    0 Apr 12 01:21 test
[root@ibm-hs22-04 mnt]# touch test/test
[root@ibm-hs22-04 mnt]# ls linkfromserver/
test
========CHECK SERVER
[root@ibm-hs22-04 mnt]# ls -la /tmp/test
total 20
drwxrwxrwx. 3 root root 4096 Apr 12 01:23 .
drwxrwxrwx. 4 root root 4096 Apr 12 00:02 ..
-rwxr--r--. 1 root root 1067 Apr 12 01:18 linkfromclient
-rwxr--r--. 1 root root 1067 Apr 12 01:23 linkfromclientwithoutnonunix
lrwxrwxrwx. 1 root root    4 Apr 12 01:16 linkfromserver -> test
drwxr-xr-x. 2 root root 4096 Apr 12 01:21 test

Comment 8 errata-xmlrpc 2011-05-23 20:28:51 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2011-0542.html