Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e39b0ae authored by Steve French's avatar Steve French
Browse files

[CIFS] Remove unneeded QuerySymlink call and fix mapping for unmapped status



Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent d185cda7
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -3509,8 +3509,6 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
					   struct nls_table *nls_info)
{
	int rc = 0;
	char ntlm_session_key[CIFS_SESS_KEY_SIZE];
	bool ntlmv2_flag = false;
	int first_time = 0;
	struct TCP_Server_Info *server = pSesInfo->server;

+2 −7
Original line number Diff line number Diff line
@@ -257,13 +257,8 @@ cifs_readlink(struct dentry *direntry, char __user *pBuffer, int buflen)

/* BB add read reparse point symlink code and
	Unix extensions symlink code here BB */
/* We could disable this based on pTcon->unix_ext flag instead ... but why? */
	if (cifs_sb->tcon->ses->capabilities & CAP_UNIX)
		rc = CIFSSMBUnixQuerySymLink(xid, pTcon, full_path,
				tmpbuffer,
				len - 1,
				cifs_sb->local_nls);
	else if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL) {

	if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL) {
		cERROR(1, ("SFU style symlinks not implemented yet"));
		/* add open and read as in fs/cifs/inode.c */
	} else {
+2 −0
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ static const struct smb_to_posix_error mapping_table_ERRDOS[] = {
	{ErrQuota, -EDQUOT},
	{ErrNotALink, -ENOLINK},
	{ERRnetlogonNotStarted, -ENOPROTOOPT},
	{ERRsymlink, -EOPNOTSUPP},
	{ErrTooManyLinks, -EMLINK},
	{0, 0}
};
@@ -714,6 +715,7 @@ static const struct {
	ERRDOS, ERRnoaccess, 0xc000028f}, {
	ERRDOS, ERRnoaccess, 0xc0000290}, {
	ERRDOS, ERRbadfunc, 0xc000029c}, {
	ERRDOS, ERRsymlink, NT_STATUS_STOPPED_ON_SYMLINK}, {
	ERRDOS, ERRinvlevel, 0x007c0001}, };

/*****************************************************************************
+7 −2
Original line number Diff line number Diff line
@@ -35,8 +35,6 @@ struct nt_err_code_struct {
extern const struct nt_err_code_struct nt_errs[];

/* Win32 Status codes. */

#define STATUS_BUFFER_OVERFLOW            0x80000005
#define STATUS_MORE_ENTRIES               0x0105
#define ERROR_INVALID_PARAMETER		  0x0057
#define ERROR_INSUFFICIENT_BUFFER	  0x007a
@@ -50,6 +48,13 @@ extern const struct nt_err_code_struct nt_errs[];
#define STATUS_SOME_UNMAPPED       0x0107
#define STATUS_BUFFER_OVERFLOW     0x80000005
#define NT_STATUS_NO_MORE_ENTRIES  0x8000001a
#define NT_STATUS_MEDIA_CHANGED    0x8000001c
#define NT_STATUS_END_OF_MEDIA     0x8000001e
#define NT_STATUS_MEDIA_CHECK      0x80000020
#define NT_STATUS_NO_DATA_DETECTED 0x8000001c
#define NT_STATUS_STOPPED_ON_SYMLINK 0x8000002d
#define NT_STATUS_DEVICE_REQUIRES_CLEANING 0x80000288
#define NT_STATUS_DEVICE_DOOR_OPEN 0x80000288
#define NT_STATUS_UNSUCCESSFUL 0xC0000000 | 0x0001
#define NT_STATUS_NOT_IMPLEMENTED 0xC0000000 | 0x0002
#define NT_STATUS_INVALID_INFO_CLASS 0xC0000000 | 0x0003
+1 −0
Original line number Diff line number Diff line
@@ -110,6 +110,7 @@

/* Below errors are used internally (do not come over the wire) for passthrough
   from STATUS codes to POSIX only  */
#define ERRsymlink              0xFFFD
#define ErrTooManyLinks         0xFFFE

/* Following error codes may be generated with the ERRSRV error class.*/