소스 검색

[CIFS] fix check for dead tcon in smb_init

This was recently changed to check for need_reconnect, but should
actually be a check for a tidStatus of CifsExiting.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Steve French 16 년 전
부모
커밋
bfb59820ee
2개의 변경된 파일6개의 추가작업 그리고 2개의 파일을 삭제
  1. 5 1
      fs/cifs/CHANGES
  2. 1 1
      fs/cifs/cifssmb.c

+ 5 - 1
fs/cifs/CHANGES

@@ -8,7 +8,11 @@ handling fcntl(F_SETLEASE).  Convert cifs to using blocking tcp
 sends, and also let tcp autotune the socket send and receive buffers.
 sends, and also let tcp autotune the socket send and receive buffers.
 This reduces the number of EAGAIN errors returned by TCP/IP in
 This reduces the number of EAGAIN errors returned by TCP/IP in
 high stress workloads (and the number of retries on socket writes
 high stress workloads (and the number of retries on socket writes
-when sending large SMBWriteX requests).
+when sending large SMBWriteX requests).  Fix case in which a portion of
+data can in some cases not get written to the file on the server before the
+file is closed.  Fix DFS parsing to properly handle path consumed field,
+and to handle certain codepage conversions better.  Fix mount and
+umount race that can cause oops in mount or umount or reconnect.
 
 
 Version 1.54
 Version 1.54
 ------------
 ------------

+ 1 - 1
fs/cifs/cifssmb.c

@@ -295,7 +295,7 @@ smb_init(int smb_command, int wct, struct cifsTconInfo *tcon,
 	   check for tcp and smb session status done differently
 	   check for tcp and smb session status done differently
 	   for those three - in the calling routine */
 	   for those three - in the calling routine */
 	if (tcon) {
 	if (tcon) {
-		if (tcon->need_reconnect) {
+		if (tcon->tidStatus == CifsExiting) {
 			/* only tree disconnect, open, and write,
 			/* only tree disconnect, open, and write,
 			  (and ulogoff which does not have tcon)
 			  (and ulogoff which does not have tcon)
 			  are allowed as we start force umount */
 			  are allowed as we start force umount */