Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
etercifs
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
etercifs
Commits
dcdfaeb3
Commit
dcdfaeb3
authored
7 years ago
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update 3.16 up to real 3.16.53 + Etersoft's patches
parent
892812f0
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
83 additions
and
20 deletions
+83
-20
Makefile
sources/3.16/Makefile
+7
-7
cifsacl.c
sources/3.16/cifsacl.c
+2
-0
cifsfs.c
sources/3.16/cifsfs.c
+3
-0
cifsglob.h
sources/3.16/cifsglob.h
+8
-0
cifspdu.h
sources/3.16/cifspdu.h
+8
-0
cifssmb.c
sources/3.16/cifssmb.c
+8
-1
connect.c
sources/3.16/connect.c
+6
-1
dir.c
sources/3.16/dir.c
+6
-1
file.c
sources/3.16/file.c
+10
-2
inode.c
sources/3.16/inode.c
+9
-4
link.c
sources/3.16/link.c
+2
-0
netmisc.c
sources/3.16/netmisc.c
+1
-1
readdir.c
sources/3.16/readdir.c
+1
-1
smb1ops.c
sources/3.16/smb1ops.c
+3
-0
smb2inode.c
sources/3.16/smb2inode.c
+1
-0
smb2maperror.c
sources/3.16/smb2maperror.c
+1
-1
smb2ops.c
sources/3.16/smb2ops.c
+6
-0
smb2pdu.c
sources/3.16/smb2pdu.c
+1
-1
No files found.
sources/3.16/Makefile
View file @
dcdfaeb3
#
# Makefile for Linux CIFS VFS client
#
obj-$(CONFIG_CIFS)
+=
cifs.o
obj-$(CONFIG_CIFS)
+=
eter
cifs.o
cifs-y
:=
cifsfs.o cifssmb.o cifs_debug.o connect.o dir.o file.o inode.o
\
eter
cifs-y
:=
cifsfs.o cifssmb.o cifs_debug.o connect.o dir.o file.o inode.o
\
link.o misc.o netmisc.o smbencrypt.o transport.o asn1.o
\
cifs_unicode.o nterr.o xattr.o cifsencrypt.o
\
readdir.o ioctl.o sess.o export.o smb1ops.o winucase.o
cifs-$(CONFIG_CIFS_ACL)
+=
cifsacl.o
eter
cifs-$(CONFIG_CIFS_ACL)
+=
cifsacl.o
cifs-$(CONFIG_CIFS_UPCALL)
+=
cifs_spnego.o
eter
cifs-$(CONFIG_CIFS_UPCALL)
+=
cifs_spnego.o
cifs-$(CONFIG_CIFS_DFS_UPCALL)
+=
dns_resolve.o
cifs_dfs_ref.o
eter
cifs-$(CONFIG_CIFS_DFS_UPCALL)
+=
dns_resolve.o
cifs_dfs_ref.o
cifs-$(CONFIG_CIFS_FSCACHE)
+=
fscache.o
cache.o
eter
cifs-$(CONFIG_CIFS_FSCACHE)
+=
fscache.o
cache.o
cifs-$(CONFIG_CIFS_SMB2)
+=
smb2ops.o
smb2maperror.o
smb2transport.o
\
eter
cifs-$(CONFIG_CIFS_SMB2)
+=
smb2ops.o
smb2maperror.o
smb2transport.o
\
smb2misc.o
smb2pdu.o
smb2inode.o
smb2file.o
This diff is collapsed.
Click to expand it.
sources/3.16/cifsacl.c
View file @
dcdfaeb3
...
...
@@ -913,6 +913,7 @@ static struct cifs_ntsd *get_cifs_acl_by_path(struct cifs_sb_info *cifs_sb,
oparms
.
tcon
=
tcon
;
oparms
.
cifs_sb
=
cifs_sb
;
oparms
.
desired_access
=
READ_CONTROL
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
create_options
=
create_options
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
path
=
path
;
...
...
@@ -982,6 +983,7 @@ int set_cifs_acl(struct cifs_ntsd *pnntsd, __u32 acllen,
oparms
.
tcon
=
tcon
;
oparms
.
cifs_sb
=
cifs_sb
;
oparms
.
desired_access
=
access_flags
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
create_options
=
create_options
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
path
=
path
;
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/cifsfs.c
View file @
dcdfaeb3
...
...
@@ -472,6 +472,9 @@ cifs_show_options(struct seq_file *s, struct dentry *root)
seq_puts
(
s
,
",mfsymlinks"
);
if
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_FSCACHE
)
seq_puts
(
s
,
",fsc"
);
if
((
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_STRICT_IO
)
&&
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_NOPOSIXBRL
))
seq_puts
(
s
,
",wine"
);
if
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_NOSSYNC
)
seq_puts
(
s
,
",nostrictsync"
);
if
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_NO_PERM
)
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/cifsglob.h
View file @
dcdfaeb3
...
...
@@ -978,6 +978,7 @@ struct cifs_open_parms {
struct
cifs_sb_info
*
cifs_sb
;
int
disposition
;
int
desired_access
;
int
share_access
;
int
create_options
;
const
char
*
path
;
struct
cifs_fid
*
fid
;
...
...
@@ -1025,6 +1026,13 @@ struct cifsFileInfo {
struct
work_struct
oplock_break
;
/* work for oplock breaks */
};
#define SHARE_FLAGS_SHIFT 28
static
inline
int
cifs_get_share_flags
(
unsigned
int
flags
)
{
return
(
~
(
flags
>>
SHARE_FLAGS_SHIFT
))
&
7
;
}
struct
cifs_io_parms
{
__u16
netfid
;
#ifdef CONFIG_CIFS_SMB2
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/cifspdu.h
View file @
dcdfaeb3
...
...
@@ -22,6 +22,14 @@
#ifndef _CIFSPDU_H
#define _CIFSPDU_H
#ifndef CONFIG_CIFS_XATTR
#define CONFIG_CIFS_XATTR
#endif
#ifndef CONFIG_CIFS_POSIX
#define CONFIG_CIFS_POSIX
#endif
#include <net/sock.h>
#include <asm/unaligned.h>
#include "smbfsctl.h"
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/cifssmb.c
View file @
dcdfaeb3
...
...
@@ -1124,6 +1124,7 @@ psx_create_err:
return
rc
;
}
#ifdef ETERSOFT_USE_SMB_LEGACY_OPEN
static
__u16
convert_disposition
(
int
disposition
)
{
__u16
ofun
=
0
;
...
...
@@ -1167,6 +1168,7 @@ access_flags_to_smbopen_mode(const int access_flags)
/* just go for read/write */
return
SMBOPEN_READWRITE
;
}
#endif
int
SMBLegacyOpen
(
const
unsigned
int
xid
,
struct
cifs_tcon
*
tcon
,
...
...
@@ -1175,6 +1177,10 @@ SMBLegacyOpen(const unsigned int xid, struct cifs_tcon *tcon,
int
*
pOplock
,
FILE_ALL_INFO
*
pfile_info
,
const
struct
nls_table
*
nls_codepage
,
int
remap
)
{
#ifndef ETERSOFT_USE_SMB_LEGACY_OPEN
printk
(
"Etersoft: Do not use SMBLegacyOpen!
\n
"
);
return
-
EACCES
;
#else
int
rc
=
-
EACCES
;
OPENX_REQ
*
pSMB
=
NULL
;
OPENX_RSP
*
pSMBr
=
NULL
;
...
...
@@ -1273,6 +1279,7 @@ OldOpenRetry:
if
(
rc
==
-
EAGAIN
)
goto
OldOpenRetry
;
return
rc
;
#endif
}
int
...
...
@@ -1350,7 +1357,7 @@ openRetry:
if
(
create_options
&
CREATE_OPTION_READONLY
)
req
->
FileAttributes
|=
cpu_to_le32
(
ATTR_READONLY
);
req
->
ShareAccess
=
cpu_to_le32
(
FILE_SHARE_ALL
);
req
->
ShareAccess
=
cpu_to_le32
(
oparms
->
share_access
);
req
->
CreateDisposition
=
cpu_to_le32
(
disposition
);
req
->
CreateOptions
=
cpu_to_le32
(
create_options
&
CREATE_OPTIONS_MASK
);
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/connect.c
View file @
dcdfaeb3
...
...
@@ -84,7 +84,7 @@ enum {
Opt_nointr
,
Opt_intr
,
Opt_nostrictsync
,
Opt_strictsync
,
Opt_serverino
,
Opt_noserverino
,
Opt_rwpidforward
,
Opt_cifsacl
,
Opt_nocifsacl
,
Opt_rwpidforward
,
Opt_
wine
,
Opt_
cifsacl
,
Opt_nocifsacl
,
Opt_acl
,
Opt_noacl
,
Opt_locallease
,
Opt_sign
,
Opt_seal
,
Opt_noac
,
Opt_fsc
,
Opt_mfsymlinks
,
...
...
@@ -156,6 +156,7 @@ static const match_table_t cifs_mount_option_tokens = {
{
Opt_serverino
,
"serverino"
},
{
Opt_noserverino
,
"noserverino"
},
{
Opt_rwpidforward
,
"rwpidforward"
},
{
Opt_wine
,
"wine"
},
{
Opt_cifsacl
,
"cifsacl"
},
{
Opt_nocifsacl
,
"nocifsacl"
},
{
Opt_acl
,
"acl"
},
...
...
@@ -1434,6 +1435,10 @@ cifs_parse_mount_options(const char *mountdata, const char *devname,
case
Opt_rwpidforward
:
vol
->
rwpidforward
=
1
;
break
;
case
Opt_wine
:
vol
->
strict_io
=
1
;
vol
->
mand_lock
=
1
;
break
;
case
Opt_cifsacl
:
vol
->
cifs_acl
=
1
;
break
;
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/dir.c
View file @
dcdfaeb3
...
...
@@ -226,6 +226,7 @@ cifs_do_create(struct inode *inode, struct dentry *direntry, unsigned int xid,
FILE_ALL_INFO
*
buf
=
NULL
;
struct
inode
*
newinode
=
NULL
;
int
disposition
;
int
share_access
;
struct
TCP_Server_Info
*
server
=
tcon
->
ses
->
server
;
struct
cifs_open_parms
oparms
;
...
...
@@ -240,6 +241,7 @@ cifs_do_create(struct inode *inode, struct dentry *direntry, unsigned int xid,
}
if
(
tcon
->
unix_ext
&&
cap_unix
(
tcon
->
ses
)
&&
!
tcon
->
broken_posix_open
&&
((
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_NOPOSIXBRL
)
==
0
)
&&
(
CIFS_UNIX_POSIX_PATH_OPS_CAP
&
le64_to_cpu
(
tcon
->
fsUnixInfo
.
Capability
)))
{
rc
=
cifs_posix_open
(
full_path
,
&
newinode
,
inode
->
i_sb
,
mode
,
...
...
@@ -324,6 +326,8 @@ cifs_do_create(struct inode *inode, struct dentry *direntry, unsigned int xid,
else
cifs_dbg
(
FYI
,
"Create flag not set in create function
\n
"
);
share_access
=
cifs_get_share_flags
(
oflags
);
/*
* BB add processing to set equivalent of mode - e.g. via CreateX with
* ACLs
...
...
@@ -353,6 +357,7 @@ cifs_do_create(struct inode *inode, struct dentry *direntry, unsigned int xid,
oparms
.
tcon
=
tcon
;
oparms
.
cifs_sb
=
cifs_sb
;
oparms
.
desired_access
=
desired_access
;
oparms
.
share_access
=
share_access
;
oparms
.
create_options
=
create_options
;
oparms
.
disposition
=
disposition
;
oparms
.
path
=
full_path
;
...
...
@@ -668,7 +673,6 @@ int cifs_mknod(struct inode *inode, struct dentry *direntry, umode_t mode,
if
(
!
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_UNX_EMUL
))
goto
mknod_out
;
cifs_dbg
(
FYI
,
"sfu compat create special file
\n
"
);
buf
=
kmalloc
(
sizeof
(
FILE_ALL_INFO
),
GFP_KERNEL
);
...
...
@@ -685,6 +689,7 @@ int cifs_mknod(struct inode *inode, struct dentry *direntry, umode_t mode,
oparms
.
tcon
=
tcon
;
oparms
.
cifs_sb
=
cifs_sb
;
oparms
.
desired_access
=
GENERIC_WRITE
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
create_options
=
create_options
;
oparms
.
disposition
=
FILE_CREATE
;
oparms
.
path
=
full_path
;
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/file.c
View file @
dcdfaeb3
...
...
@@ -179,6 +179,7 @@ cifs_nt_open(char *full_path, struct inode *inode, struct cifs_sb_info *cifs_sb,
{
int
rc
;
int
desired_access
;
int
share_access
;
int
disposition
;
int
create_options
=
CREATE_NOT_DIR
;
FILE_ALL_INFO
*
buf
;
...
...
@@ -215,6 +216,7 @@ cifs_nt_open(char *full_path, struct inode *inode, struct cifs_sb_info *cifs_sb,
*********************************************************************/
disposition
=
cifs_get_disposition
(
f_flags
);
share_access
=
cifs_get_share_flags
(
f_flags
);
/* BB pass O_SYNC flag through on file attributes .. BB */
...
...
@@ -235,6 +237,7 @@ cifs_nt_open(char *full_path, struct inode *inode, struct cifs_sb_info *cifs_sb,
oparms
.
tcon
=
tcon
;
oparms
.
cifs_sb
=
cifs_sb
;
oparms
.
desired_access
=
desired_access
;
oparms
.
share_access
=
share_access
;
oparms
.
create_options
=
create_options
;
oparms
.
disposition
=
disposition
;
oparms
.
path
=
full_path
;
...
...
@@ -490,8 +493,9 @@ int cifs_open(struct inode *inode, struct file *file)
else
oplock
=
0
;
if
(
!
tcon
->
broken_posix_open
&&
tcon
->
unix_ext
&&
cap_unix
(
tcon
->
ses
)
&&
(
CIFS_UNIX_POSIX_PATH_OPS_CAP
&
if
(
!
tcon
->
broken_posix_open
&&
tcon
->
unix_ext
&&
cap_unix
(
tcon
->
ses
)
&&
((
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_NOPOSIXBRL
)
==
0
)
&&
(
CIFS_UNIX_POSIX_PATH_OPS_CAP
&
le64_to_cpu
(
tcon
->
fsUnixInfo
.
Capability
)))
{
/* can not refresh inode info since size could be stale */
rc
=
cifs_posix_open
(
full_path
,
&
inode
,
inode
->
i_sb
,
...
...
@@ -613,6 +617,7 @@ cifs_reopen_file(struct cifsFileInfo *cfile, bool can_flush)
struct
inode
*
inode
;
char
*
full_path
=
NULL
;
int
desired_access
;
int
share_access
;
int
disposition
=
FILE_OPEN
;
int
create_options
=
CREATE_NOT_DIR
;
struct
cifs_open_parms
oparms
;
...
...
@@ -654,6 +659,7 @@ cifs_reopen_file(struct cifsFileInfo *cfile, bool can_flush)
oplock
=
0
;
if
(
tcon
->
unix_ext
&&
cap_unix
(
tcon
->
ses
)
&&
((
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_NOPOSIXBRL
)
==
0
)
&&
(
CIFS_UNIX_POSIX_PATH_OPS_CAP
&
le64_to_cpu
(
tcon
->
fsUnixInfo
.
Capability
)))
{
/*
...
...
@@ -678,6 +684,7 @@ cifs_reopen_file(struct cifsFileInfo *cfile, bool can_flush)
}
desired_access
=
cifs_convert_flags
(
cfile
->
f_flags
);
share_access
=
cifs_get_share_flags
(
cfile
->
f_flags
);
if
(
backup_cred
(
cifs_sb
))
create_options
|=
CREATE_OPEN_BACKUP_INTENT
;
...
...
@@ -688,6 +695,7 @@ cifs_reopen_file(struct cifsFileInfo *cfile, bool can_flush)
oparms
.
tcon
=
tcon
;
oparms
.
cifs_sb
=
cifs_sb
;
oparms
.
desired_access
=
desired_access
;
oparms
.
share_access
=
share_access
;
oparms
.
create_options
=
create_options
;
oparms
.
disposition
=
disposition
;
oparms
.
path
=
full_path
;
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/inode.c
View file @
dcdfaeb3
...
...
@@ -445,6 +445,7 @@ cifs_sfu_type(struct cifs_fattr *fattr, const char *path,
oparms
.
tcon
=
tcon
;
oparms
.
cifs_sb
=
cifs_sb
;
oparms
.
desired_access
=
GENERIC_READ
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
create_options
=
CREATE_NOT_DIR
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
path
=
path
;
...
...
@@ -1095,6 +1096,7 @@ cifs_rename_pending_delete(const char *full_path, struct dentry *dentry,
oparms
.
tcon
=
tcon
;
oparms
.
cifs_sb
=
cifs_sb
;
oparms
.
desired_access
=
DELETE
|
FILE_WRITE_ATTRIBUTES
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
create_options
=
CREATE_NOT_DIR
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
path
=
full_path
;
...
...
@@ -1138,7 +1140,7 @@ cifs_rename_pending_delete(const char *full_path, struct dentry *dentry,
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_MAP_SPECIAL_CHR
);
if
(
rc
!=
0
)
{
rc
=
-
E
BU
SY
;
rc
=
-
E
TXTB
SY
;
goto
undo_setattr
;
}
...
...
@@ -1157,7 +1159,7 @@ cifs_rename_pending_delete(const char *full_path, struct dentry *dentry,
if
(
rc
==
-
ENOENT
)
rc
=
0
;
else
if
(
rc
!=
0
)
{
rc
=
-
E
BU
SY
;
rc
=
-
E
TXTB
SY
;
goto
undo_rename
;
}
set_bit
(
CIFS_INO_DELETE_PENDING
,
&
cifsInode
->
flags
);
...
...
@@ -1264,13 +1266,15 @@ psx_del_no_retry:
cifs_drop_nlink
(
inode
);
}
else
if
(
rc
==
-
ENOENT
)
{
d_drop
(
dentry
);
}
else
if
(
rc
==
-
E
BU
SY
)
{
}
else
if
(
rc
==
-
E
TXTB
SY
)
{
if
(
server
->
ops
->
rename_pending_delete
)
{
rc
=
server
->
ops
->
rename_pending_delete
(
full_path
,
dentry
,
xid
);
if
(
rc
==
0
)
cifs_drop_nlink
(
inode
);
}
if
(
rc
==
-
ETXTBSY
)
rc
=
-
EBUSY
;
}
else
if
((
rc
==
-
EACCES
)
&&
(
dosattr
==
0
)
&&
inode
)
{
attrs
=
kzalloc
(
sizeof
(
*
attrs
),
GFP_KERNEL
);
if
(
attrs
==
NULL
)
{
...
...
@@ -1614,7 +1618,7 @@ cifs_do_rename(const unsigned int xid, struct dentry *from_dentry,
* source. Note that cross directory moves do not work with
* rename by filehandle to various Windows servers.
*/
if
(
rc
==
0
||
rc
!=
-
E
BU
SY
)
if
(
rc
==
0
||
rc
!=
-
E
TXTB
SY
)
goto
do_rename_exit
;
/* open-file renames don't work across directories */
...
...
@@ -1625,6 +1629,7 @@ cifs_do_rename(const unsigned int xid, struct dentry *from_dentry,
oparms
.
cifs_sb
=
cifs_sb
;
/* open the file to be renamed -- we need DELETE perms */
oparms
.
desired_access
=
DELETE
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
create_options
=
CREATE_NOT_DIR
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
path
=
from_path
;
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/link.c
View file @
dcdfaeb3
...
...
@@ -333,6 +333,7 @@ cifs_query_mf_symlink(unsigned int xid, struct cifs_tcon *tcon,
oparms
.
tcon
=
tcon
;
oparms
.
cifs_sb
=
cifs_sb
;
oparms
.
desired_access
=
GENERIC_READ
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
create_options
=
CREATE_NOT_DIR
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
path
=
path
;
...
...
@@ -377,6 +378,7 @@ cifs_create_mf_symlink(unsigned int xid, struct cifs_tcon *tcon,
oparms
.
tcon
=
tcon
;
oparms
.
cifs_sb
=
cifs_sb
;
oparms
.
desired_access
=
GENERIC_WRITE
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
create_options
=
create_options
;
oparms
.
disposition
=
FILE_CREATE
;
oparms
.
path
=
path
;
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/netmisc.c
View file @
dcdfaeb3
...
...
@@ -62,7 +62,7 @@ static const struct smb_to_posix_error mapping_table_ERRDOS[] = {
{
ERRdiffdevice
,
-
EXDEV
},
{
ERRnofiles
,
-
ENOENT
},
{
ERRwriteprot
,
-
EROFS
},
{
ERRbadshare
,
-
E
BU
SY
},
{
ERRbadshare
,
-
E
TXTB
SY
},
{
ERRlock
,
-
EACCES
},
{
ERRunsup
,
-
EINVAL
},
{
ERRnosuchshare
,
-
ENXIO
},
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/readdir.c
View file @
dcdfaeb3
...
...
@@ -241,7 +241,7 @@ int get_symlink_reparse_path(char *full_path, struct cifs_sb_info *cifs_sb,
char *tmpbuffer;
rc = CIFSSMBOpen(xid, ptcon, full_path, FILE_OPEN, GENERIC_READ,
OPEN_REPARSE_POINT, &fid, &oplock, NULL,
FILE_SHARE_ALL,
OPEN_REPARSE_POINT, &fid, &oplock, NULL,
cifs_sb->local_nls,
cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
if (!rc) {
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/smb1ops.c
View file @
dcdfaeb3
...
...
@@ -576,6 +576,7 @@ cifs_query_path_info(const unsigned int xid, struct cifs_tcon *tcon,
oparms
.
tcon
=
tcon
;
oparms
.
cifs_sb
=
cifs_sb
;
oparms
.
desired_access
=
FILE_READ_ATTRIBUTES
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
create_options
=
0
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
path
=
full_path
;
...
...
@@ -812,6 +813,7 @@ smb_set_file_info(struct inode *inode, const char *full_path,
oparms
.
tcon
=
tcon
;
oparms
.
cifs_sb
=
cifs_sb
;
oparms
.
desired_access
=
SYNCHRONIZE
|
FILE_WRITE_ATTRIBUTES
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
create_options
=
CREATE_NOT_DIR
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
path
=
full_path
;
...
...
@@ -984,6 +986,7 @@ cifs_query_symlink(const unsigned int xid, struct cifs_tcon *tcon,
oparms
.
tcon
=
tcon
;
oparms
.
cifs_sb
=
cifs_sb
;
oparms
.
desired_access
=
FILE_READ_ATTRIBUTES
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
create_options
=
OPEN_REPARSE_POINT
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
path
=
full_path
;
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/smb2inode.c
View file @
dcdfaeb3
...
...
@@ -55,6 +55,7 @@ smb2_open_op_close(const unsigned int xid, struct cifs_tcon *tcon,
oparms
.
tcon
=
tcon
;
oparms
.
desired_access
=
desired_access
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
disposition
=
create_disposition
;
oparms
.
create_options
=
create_options
;
oparms
.
fid
=
&
fid
;
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/smb2maperror.c
View file @
dcdfaeb3
...
...
@@ -358,7 +358,7 @@ static const struct status_to_posix_error smb2_error_map_table[] = {
{
STATUS_PORT_CONNECTION_REFUSED
,
-
ECONNREFUSED
,
"STATUS_PORT_CONNECTION_REFUSED"
},
{
STATUS_INVALID_PORT_HANDLE
,
-
EIO
,
"STATUS_INVALID_PORT_HANDLE"
},
{
STATUS_SHARING_VIOLATION
,
-
E
BU
SY
,
"STATUS_SHARING_VIOLATION"
},
{
STATUS_SHARING_VIOLATION
,
-
E
TXTB
SY
,
"STATUS_SHARING_VIOLATION"
},
{
STATUS_QUOTA_EXCEEDED
,
-
EDQUOT
,
"STATUS_QUOTA_EXCEEDED"
},
{
STATUS_INVALID_PAGE_PROTECTION
,
-
EIO
,
"STATUS_INVALID_PAGE_PROTECTION"
},
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/smb2ops.c
View file @
dcdfaeb3
...
...
@@ -244,6 +244,7 @@ smb3_qfs_tcon(const unsigned int xid, struct cifs_tcon *tcon)
oparms
.
tcon
=
tcon
;
oparms
.
desired_access
=
FILE_READ_ATTRIBUTES
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
create_options
=
0
;
oparms
.
fid
=
&
fid
;
...
...
@@ -278,6 +279,7 @@ smb2_qfs_tcon(const unsigned int xid, struct cifs_tcon *tcon)
oparms
.
tcon
=
tcon
;
oparms
.
desired_access
=
FILE_READ_ATTRIBUTES
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
create_options
=
0
;
oparms
.
fid
=
&
fid
;
...
...
@@ -311,6 +313,7 @@ smb2_is_path_accessible(const unsigned int xid, struct cifs_tcon *tcon,
oparms
.
tcon
=
tcon
;
oparms
.
desired_access
=
FILE_READ_ATTRIBUTES
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
create_options
=
0
;
oparms
.
fid
=
&
fid
;
...
...
@@ -721,6 +724,7 @@ smb2_query_dir_first(const unsigned int xid, struct cifs_tcon *tcon,
oparms
.
tcon
=
tcon
;
oparms
.
desired_access
=
FILE_READ_ATTRIBUTES
|
FILE_READ_DATA
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
create_options
=
0
;
oparms
.
fid
=
fid
;
...
...
@@ -808,6 +812,7 @@ smb2_queryfs(const unsigned int xid, struct cifs_tcon *tcon,
oparms
.
tcon
=
tcon
;
oparms
.
desired_access
=
FILE_READ_ATTRIBUTES
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
create_options
=
0
;
oparms
.
fid
=
&
fid
;
...
...
@@ -887,6 +892,7 @@ smb2_query_symlink(const unsigned int xid, struct cifs_tcon *tcon,
oparms
.
tcon
=
tcon
;
oparms
.
desired_access
=
FILE_READ_ATTRIBUTES
;
oparms
.
share_access
=
FILE_SHARE_ALL
;
oparms
.
disposition
=
FILE_OPEN
;
oparms
.
create_options
=
0
;
oparms
.
fid
=
&
fid
;
...
...
This diff is collapsed.
Click to expand it.
sources/3.16/smb2pdu.c
View file @
dcdfaeb3
...
...
@@ -1153,7 +1153,7 @@ SMB2_open(const unsigned int xid, struct cifs_open_parms *oparms, __le16 *path,
req
->
DesiredAccess
=
cpu_to_le32
(
oparms
->
desired_access
);
/* File attributes ignored on open (used in create though) */
req
->
FileAttributes
=
cpu_to_le32
(
file_attributes
);
req
->
ShareAccess
=
FILE_SHARE_ALL_LE
;
req
->
ShareAccess
=
cpu_to_le32
(
oparms
->
share_access
)
;
req
->
CreateDisposition
=
cpu_to_le32
(
oparms
->
disposition
);
req
->
CreateOptions
=
cpu_to_le32
(
oparms
->
create_options
&
CREATE_OPTIONS_MASK
);
uni_path_len
=
(
2
*
UniStrnlen
((
wchar_t
*
)
path
,
PATH_MAX
))
+
2
;
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment