diff options
Diffstat (limited to 'fs/cifs/connect.c')
| -rw-r--r-- | fs/cifs/connect.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 9ae695ae3ed7..d82467cfb0e2 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
| @@ -904,10 +904,19 @@ cifs_demultiplex_thread(void *p) | |||
| 904 | 904 | ||
| 905 | server->lstrp = jiffies; | 905 | server->lstrp = jiffies; |
| 906 | if (mid_entry != NULL) { | 906 | if (mid_entry != NULL) { |
| 907 | if ((mid_entry->mid_flags & MID_WAIT_CANCELLED) && | ||
| 908 | mid_entry->mid_state == MID_RESPONSE_RECEIVED && | ||
| 909 | server->ops->handle_cancelled_mid) | ||
| 910 | server->ops->handle_cancelled_mid( | ||
| 911 | mid_entry->resp_buf, | ||
| 912 | server); | ||
| 913 | |||
| 907 | if (!mid_entry->multiRsp || mid_entry->multiEnd) | 914 | if (!mid_entry->multiRsp || mid_entry->multiEnd) |
| 908 | mid_entry->callback(mid_entry); | 915 | mid_entry->callback(mid_entry); |
| 909 | } else if (!server->ops->is_oplock_break || | 916 | } else if (server->ops->is_oplock_break && |
| 910 | !server->ops->is_oplock_break(buf, server)) { | 917 | server->ops->is_oplock_break(buf, server)) { |
| 918 | cifs_dbg(FYI, "Received oplock break\n"); | ||
| 919 | } else { | ||
| 911 | cifs_dbg(VFS, "No task to wake, unknown frame received! NumMids %d\n", | 920 | cifs_dbg(VFS, "No task to wake, unknown frame received! NumMids %d\n", |
| 912 | atomic_read(&midCount)); | 921 | atomic_read(&midCount)); |
| 913 | cifs_dump_mem("Received Data is: ", buf, | 922 | cifs_dump_mem("Received Data is: ", buf, |
| @@ -3744,6 +3753,9 @@ try_mount_again: | |||
| 3744 | if (IS_ERR(tcon)) { | 3753 | if (IS_ERR(tcon)) { |
| 3745 | rc = PTR_ERR(tcon); | 3754 | rc = PTR_ERR(tcon); |
| 3746 | tcon = NULL; | 3755 | tcon = NULL; |
| 3756 | if (rc == -EACCES) | ||
| 3757 | goto mount_fail_check; | ||
| 3758 | |||
| 3747 | goto remote_path_check; | 3759 | goto remote_path_check; |
| 3748 | } | 3760 | } |
| 3749 | 3761 | ||
