|
|
@@ -881,8 +881,14 @@ int smb3_validate_negotiate(const unsigned int xid, struct cifs_tcon *tcon)
|
|
|
rc = SMB2_ioctl(xid, tcon, NO_FILE_ID, NO_FILE_ID,
|
|
|
FSCTL_VALIDATE_NEGOTIATE_INFO, true /* is_fsctl */,
|
|
|
(char *)pneg_inbuf, inbuflen, (char **)&pneg_rsp, &rsplen);
|
|
|
-
|
|
|
- if (rc != 0) {
|
|
|
+ if (rc == -EOPNOTSUPP) {
|
|
|
+ /*
|
|
|
+ * Old Windows versions or Netapp SMB server can return
|
|
|
+ * not supported error. Client should accept it.
|
|
|
+ */
|
|
|
+ cifs_dbg(VFS, "Server does not support validate negotiate\n");
|
|
|
+ return 0;
|
|
|
+ } else if (rc != 0) {
|
|
|
cifs_dbg(VFS, "validate protocol negotiate failed: %d\n", rc);
|
|
|
rc = -EIO;
|
|
|
goto out_free_inbuf;
|