bk://cifs.bkbits.net/linux-2.5cifs cifs.adm@bkbits.net|ChangeSet|20041026211952|47088 cifs.adm # This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2004/10/21 22:36:00-05:00 sfrench@smft41.(none) # [CIFS] treat NTFS junctions (reparse points) as directories rather than symlinks since we can not follow them # # Signed-off-by: Steve French (sfrench@us.ibm.com) # # fs/cifs/inode.c # 2004/10/21 22:35:51-05:00 sfrench@smft41.(none) +4 -4 # treat NTFS junctions (reparse points) as directories rather than symlinks since we can not follow them # # fs/cifs/file.c # 2004/10/21 22:35:51-05:00 sfrench@smft41.(none) +5 -6 # treat NTFS junctions (reparse points) as directories rather than symlinks since we can not follow them # # fs/cifs/README # 2004/10/21 22:35:51-05:00 sfrench@smft41.(none) +4 -0 # Update readme for missing cifs mount options # # fs/cifs/CHANGES # 2004/10/21 22:35:51-05:00 sfrench@smft41.(none) +2 -1 # update cifs change log # # ChangeSet # 2004/10/19 17:59:37-05:00 sfrench@smft41.(none) # Merge bk://cifs.bkbits.net/linux-2.5cifs # into smft41.(none):/home/sfrench/linux-2.5cifs # # fs/cifs/CHANGES # 2004/10/19 17:59:29-05:00 sfrench@smft41.(none) +0 -0 # Auto merged # # ChangeSet # 2004/10/19 17:56:53-05:00 sfrench@smft41.(none) # [CIFS] ignore guest mount option do not log warning on it # # Signed-off-by: Steve French (sfrench@us.ibm.com) # # fs/cifs/connect.c # 2004/10/19 17:56:46-05:00 sfrench@smft41.(none) +2 -0 # ignore guest mount option do not log warning on it # # fs/cifs/cifspdu.h # 2004/10/19 17:56:46-05:00 sfrench@smft41.(none) +2 -0 # missing defines for a few info levels # # fs/cifs/cifsfs.h # 2004/10/19 17:56:46-05:00 sfrench@smft41.(none) +1 -1 # Update change log for version 1.23 of cifs vfs # # fs/cifs/CHANGES # 2004/10/19 17:56:46-05:00 sfrench@smft41.(none) +6 -0 # Update change log for version 1.23 of cifs vfs # diff -Nru a/fs/cifs/CHANGES b/fs/cifs/CHANGES --- a/fs/cifs/CHANGES 2004-10-26 18:38:56 -07:00 +++ b/fs/cifs/CHANGES 2004-10-26 18:38:56 -07:00 @@ -1,3 +1,10 @@ +Version 1.23 +------------ +Multiple bigendian fixes. On little endian systems (for reconnect after +network failure) fix tcp session reconnect code so we do not try first +to reconnect on reverse of port 445. Treat reparse points (NTFS junctions) +as directories rather than symlinks because we can do follow link on them. + Version 1.22 ------------ Add config option to enable XATTR (extended attribute) support, mapping diff -Nru a/fs/cifs/README b/fs/cifs/README --- a/fs/cifs/README 2004-10-26 18:38:56 -07:00 +++ b/fs/cifs/README 2004-10-26 18:38:56 -07:00 @@ -266,6 +266,10 @@ If you do not trust the servers in your network (your mount targets) it is recommended that you specify this option for greater security. + exec Permit execution of binaries on the mount. + noexec Do not permit execution of binaries on the mount. + dev Recognize block devices on the remote mount. + nodev Do not recognize devices on the remote mount. suid Allow remote files on this mountpoint with suid enabled to be executed (default for mounts when executed as root, nosuid is default for user mounts). diff -Nru a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h --- a/fs/cifs/cifsfs.h 2004-10-26 18:38:56 -07:00 +++ b/fs/cifs/cifsfs.h 2004-10-26 18:38:56 -07:00 @@ -90,5 +90,5 @@ size_t, int); extern ssize_t cifs_getxattr(struct dentry *, const char *, void *, size_t); extern ssize_t cifs_listxattr(struct dentry *, char *, size_t); -#define CIFS_VERSION "1.20" +#define CIFS_VERSION "1.23" #endif /* _CIFSFS_H */ diff -Nru a/fs/cifs/cifspdu.h b/fs/cifs/cifspdu.h --- a/fs/cifs/cifspdu.h 2004-10-26 18:38:56 -07:00 +++ b/fs/cifs/cifspdu.h 2004-10-26 18:38:56 -07:00 @@ -1351,6 +1351,8 @@ #define SMB_QUERY_CIFS_UNIX_INFO 0x200 #define SMB_QUERY_LABEL_INFO 0x3ea #define SMB_QUERY_FS_QUOTA_INFO 0x3ee +#define SMB_QUERY_FS_FULL_SIZE_INFO 0x3ef +#define SMB_QUERY_OBJECTID_INFO 0x3f0 typedef struct smb_com_transaction2_qfsi_req { struct smb_hdr hdr; /* wct = 14+ */ diff -Nru a/fs/cifs/connect.c b/fs/cifs/connect.c --- a/fs/cifs/connect.c 2004-10-26 18:38:56 -07:00 +++ b/fs/cifs/connect.c 2004-10-26 18:38:56 -07:00 @@ -742,6 +742,8 @@ /* ignore */ } else if (strnicmp(data, "version", 3) == 0) { /* ignore */ + } else if (strnicmp(data, "guest",5) == 0) { + /* ignore */ } else if (strnicmp(data, "rw", 2) == 0) { vol->rw = TRUE; } else if ((strnicmp(data, "suid", 4) == 0) || diff -Nru a/fs/cifs/file.c b/fs/cifs/file.c --- a/fs/cifs/file.c 2004-10-26 18:38:56 -07:00 +++ b/fs/cifs/file.c 2004-10-26 18:38:56 -07:00 @@ -1376,23 +1376,22 @@ cFYI(0, ("CIFS FFIRST: Attributes came in as 0x%x", attr)); - if (attr & ATTR_REPARSE) { - *pobject_type = DT_LNK; - /* BB can this and S_IFREG or S_IFDIR be set as in Windows? */ - tmp_inode->i_mode |= S_IFLNK; - } else if (attr & ATTR_DIRECTORY) { + if (attr & ATTR_DIRECTORY) { *pobject_type = DT_DIR; /* override default perms since we do not lock dirs */ if(atomic_read(&cifsInfo->inUse) == 0) { tmp_inode->i_mode = cifs_sb->mnt_dir_mode; } tmp_inode->i_mode |= S_IFDIR; +/* we no longer mark these because we could not follow them */ +/* } else if (attr & ATTR_REPARSE) { + *pobject_type = DT_LNK; + tmp_inode->i_mode |= S_IFLNK;*/ } else { *pobject_type = DT_REG; tmp_inode->i_mode |= S_IFREG; if(attr & ATTR_READONLY) tmp_inode->i_mode &= ~(S_IWUGO); - }/* could add code here - to validate if device or weird share type? */ /* can not fill in nlink here as in qpathinfo version and Unx search */ diff -Nru a/fs/cifs/inode.c b/fs/cifs/inode.c --- a/fs/cifs/inode.c 2004-10-26 18:38:56 -07:00 +++ b/fs/cifs/inode.c 2004-10-26 18:38:56 -07:00 @@ -273,10 +273,10 @@ /* new inode, can safely set these fields */ inode->i_mode = cifs_sb->mnt_file_mode; - if (attr & ATTR_REPARSE) { - /* Can IFLNK be set as it basically is on windows with IFREG or IFDIR? */ - inode->i_mode |= S_IFLNK; - } else if (attr & ATTR_DIRECTORY) { +/* if (attr & ATTR_REPARSE) */ +/* We no longer handle these as symlinks because we could not */ +/* follow them due to the absolute path with drive letter */ + if (attr & ATTR_DIRECTORY) { /* override default perms since we do not do byte range locking on dirs */ inode->i_mode = cifs_sb->mnt_dir_mode; inode->i_mode |= S_IFDIR;