On Tue, 23 Jan 2007 14:12:57 -0700, dann frazier <[EMAIL PROTECTED]> wrote:
>Users have reported a symlink issue with my recent smbfs backport. >Turns out my backport overlooked a second 2.6 patch w/ the fix: > http://linux.bkbits.net:8080/linux-2.6/?PAGE=cset&REV=419e7b76CdrmRG_NZ8LKj9DUUBGu1w > >This is a backport of Haroldo Gamal's 2.6 patch that fixes the symlink >issue, and also cleans up an unnecessary double assignment. As his >commit message notes, you will need the userspace patches from Samba >Bug #999 in order to use the permission/ownership assigned by the >server. Server-side: [EMAIL PROTECTED]:/home/other$ uname -r 2.6.19.2a [EMAIL PROTECTED]:/home/other$ ls -l total 8 drwxr-xr-x 2 root root 96 2007-01-21 11:44 dir/ lrwxrwxrwx 1 root root 3 2007-01-21 11:43 dirlink -> dir/ -rw-r--r-- 1 root root 15 2007-01-21 11:43 file lrwxrwxrwx 1 root root 4 2007-01-21 11:44 filelink -> file -rw-r--r-- 1 grant wheel 20 2007-01-24 10:24 test lrwxrwxrwx 1 grant wheel 4 2007-01-24 10:23 testlink -> test Client-side, 2.4.34c is with this new patch, 2.4.33.3 and 2.6.19.2 for comparison: [EMAIL PROTECTED]:/home/other$ uname -r 2.4.33.3 [EMAIL PROTECTED]:/home/other$ ls -l total 4096 drwxr-xr-x 1 root root 0 2007-01-21 11:44 dir/ lrwxrwxrwx 1 root root 3 2007-01-21 11:43 dirlink -> dir/ -rw-r--r-- 1 root root 15 2007-01-21 11:43 file lrwxrwxrwx 1 root root 4 2007-01-21 11:44 filelink -> file -rw-r--r-- 1 grant wheel 20 2007-01-24 10:24 test lrwxrwxrwx 1 grant wheel 4 2007-01-24 10:23 testlink -> test [EMAIL PROTECTED]:~$ uname -r 2.6.19.2a [EMAIL PROTECTED]:~$ ls -l /home/other/ total 10 drwxr-xr-x 1 grant wheel 0 2007-01-21 11:44 dir/ lrwxr-xr-x 1 grant wheel 3 2007-01-21 11:43 dirlink -> dir/ -rwxr-xr-x 1 grant wheel 15 2007-01-21 11:43 file* lrwxr-xr-x 1 grant wheel 4 2007-01-21 11:44 filelink -> file* -rwxr-xr-x 1 grant wheel 20 2007-01-24 10:24 test* lrwxr-xr-x 1 grant wheel 4 2007-01-24 10:23 testlink -> test* [EMAIL PROTECTED]:~$ uname -r 2.4.34c [EMAIL PROTECTED]:~$ ls -l /home/other/ total 4096 drwxr-xr-x 1 grant wheel 0 2007-01-21 11:44 dir/ lrwxr-xr-x 1 grant wheel 3 2007-01-21 11:43 dirlink -> dir/ -rwxr-xr-x 1 grant wheel 15 2007-01-21 11:43 file* lrwxr-xr-x 1 grant wheel 4 2007-01-21 11:44 filelink -> file* -rwxr-xr-x 1 grant wheel 20 2007-01-24 10:24 test* lrwxr-xr-x 1 grant wheel 4 2007-01-24 10:23 testlink -> test* Grant. > >Signed-off-by: dann frazier <[EMAIL PROTECTED]> > >diff --git a/fs/smbfs/inode.c b/fs/smbfs/inode.c >index be975fe..7fd9b51 100644 >--- a/fs/smbfs/inode.c >+++ b/fs/smbfs/inode.c >@@ -513,10 +513,10 @@ smb_read_super(struct super_block *sb, void *raw_data, >int silent) > mnt->flags = (oldmnt->file_mode >> 9) | SMB_MOUNT_UID | > SMB_MOUNT_GID | SMB_MOUNT_FMODE | SMB_MOUNT_DMODE; > } else { >- mnt->file_mode = mnt->dir_mode = S_IRWXU | S_IRGRP | S_IXGRP | >- S_IROTH | S_IXOTH | S_IFREG; >- mnt->dir_mode = mnt->dir_mode = S_IRWXU | S_IRGRP | S_IXGRP | >- S_IROTH | S_IXOTH | S_IFDIR; >+ mnt->file_mode = S_IRWXU | S_IRGRP | S_IXGRP | >+ S_IROTH | S_IXOTH | S_IFREG; >+ mnt->dir_mode = S_IRWXU | S_IRGRP | S_IXGRP | >+ S_IROTH | S_IXOTH | S_IFDIR; > if (parse_options(mnt, raw_data)) > goto out_bad_option; > } >diff --git a/fs/smbfs/proc.c b/fs/smbfs/proc.c >index 7f0794c..5570007 100644 >--- a/fs/smbfs/proc.c >+++ b/fs/smbfs/proc.c >@@ -1994,10 +1994,11 @@ void smb_decode_unix_basic(struct smb_fattr *fattr, >struct smb_sb_info *server, > > if ( (server->mnt->flags & SMB_MOUNT_DMODE) && > (S_ISDIR(fattr->f_mode)) ) >- fattr->f_mode = (server->mnt->dir_mode & (S_IRWXU | S_IRWXG | >S_IRWXO)) | S_IFDIR; >+ fattr->f_mode = (server->mnt->dir_mode & S_IRWXUGO) | S_IFDIR; > else if ( (server->mnt->flags & SMB_MOUNT_FMODE) && > !(S_ISDIR(fattr->f_mode)) ) >- fattr->f_mode = (server->mnt->file_mode & (S_IRWXU | S_IRWXG | >S_IRWXO)) | S_IFREG; >+ fattr->f_mode = (server->mnt->file_mode & S_IRWXUGO) | >+ (fattr->f_mode & S_IFMT); > > } > -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]