Commit 7a299fb7 authored by Steve French's avatar Steve French

Merge bk://linux.bkbits.net/linux-2.5

into bkbits.net:/repos/c/cifs/linux-2.5cifs
parents f5b62be0 b9208516
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
......
......@@ -266,6 +266,10 @@ A partial list of the supported mount options follows:
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).
......
......@@ -90,5 +90,5 @@ extern int cifs_setxattr(struct dentry *, const char *, const void *,
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 */
......@@ -1351,6 +1351,8 @@ typedef struct smb_com_transaction2_fnext_rsp_parms {
#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+ */
......
......@@ -742,6 +742,8 @@ cifs_parse_mount_options(char *options, const char *devname, struct smb_vol *vol
/* 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) ||
......
......@@ -1376,23 +1376,22 @@ fill_in_inode(struct inode *tmp_inode,
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 */
......
......@@ -273,10 +273,10 @@ cifs_get_inode_info(struct inode **pinode, const unsigned char *search_path,
/* 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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment