smb: client: fix warning in generic_ip_connect()
authorSteve French <stfrench@microsoft.com>
Wed, 19 Jul 2023 02:23:46 +0000 (21:23 -0500)
committerSteve French <stfrench@microsoft.com>
Wed, 19 Jul 2023 02:23:46 +0000 (21:23 -0500)
This fixes the following warning reported by kernel test robot

  fs/smb/client/connect.c:2974 generic_ip_connect() error: we
  previously assumed 'socket' could be null (see line 2962)

Link: https://lore.kernel.org/all/202306170124.CtQqzf0I-lkp@intel.com/
Signed-off-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/connect.c

index b1e3b65bb73a4296ac3a14f30dc6f907bb25b220..4b94e16001d09454386827b82102300ea799156f 100644 (file)
@@ -2945,11 +2945,11 @@ ip_rfc1001_connect(struct TCP_Server_Info *server)
 static int
 generic_ip_connect(struct TCP_Server_Info *server)
 {
-       int rc = 0;
-       __be16 sport;
-       int slen, sfamily;
-       struct socket *socket = server->ssocket;
        struct sockaddr *saddr;
+       struct socket *socket;
+       int slen, sfamily;
+       __be16 sport;
+       int rc = 0;
 
        saddr = (struct sockaddr *) &server->dstaddr;
 
@@ -2971,18 +2971,19 @@ generic_ip_connect(struct TCP_Server_Info *server)
                                ntohs(sport));
        }
 
-       if (socket == NULL) {
+       if (server->ssocket) {
+               socket = server->ssocket;
+       } else {
                rc = __sock_create(cifs_net_ns(server), sfamily, SOCK_STREAM,
-                                  IPPROTO_TCP, &socket, 1);
+                                  IPPROTO_TCP, &server->ssocket, 1);
                if (rc < 0) {
                        cifs_server_dbg(VFS, "Error %d creating socket\n", rc);
-                       server->ssocket = NULL;
                        return rc;
                }
 
                /* BB other socket options to set KEEPALIVE, NODELAY? */
                cifs_dbg(FYI, "Socket created\n");
-               server->ssocket = socket;
+               socket = server->ssocket;
                socket->sk->sk_allocation = GFP_NOFS;
                if (sfamily == AF_INET6)
                        cifs_reclassify_socket6(socket);