From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9B3971951F for ; Mon, 12 Jun 2023 10:31:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 25974C433D2; Mon, 12 Jun 2023 10:31:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1686565915; bh=nhgD2TGqCEucqX0ZM6Kt/askugTMuiTKK67ortaZfNI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jciy4+zMCR07WdnorDKU1oFeqFODbYKG6kcEQiBedC/VYZLwFAabQJBo6YHF9UAo5 r5BQNmZfKXwyLoZO+Tu1HG3srhl4vzGAUoL50tRq4ZzjASacK5lAh01CETTr0zR1x/ z8XGxIVxxotPwCeW4y/Ql0EAYaljZGoIiEmA3s5M= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, "Paulo Alcantara (SUSE)" , Aurelien Aptel , Steve French , Rishabh Bhatnagar Subject: [PATCH 5.4 39/45] cifs: handle empty list of targets in cifs_reconnect() Date: Mon, 12 Jun 2023 12:26:33 +0200 Message-ID: <20230612101656.240350481@linuxfoundation.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230612101654.644983109@linuxfoundation.org> References: <20230612101654.644983109@linuxfoundation.org> User-Agent: quilt/0.67 Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Paulo Alcantara commit a52930353eaf443489a350a135c5525a4acbbf56 upstream. In case there were no cached DFS referrals in reconn_setup_dfs_targets(), set cifs_sb to NULL prior to calling reconn_set_next_dfs_target() so it would not try to access an empty tgt_list. Signed-off-by: Paulo Alcantara (SUSE) Reviewed-by: Aurelien Aptel Signed-off-by: Steve French Signed-off-by: Rishabh Bhatnagar Signed-off-by: Greg Kroah-Hartman --- fs/cifs/connect.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -513,11 +513,13 @@ cifs_reconnect(struct TCP_Server_Info *s sb = NULL; } else { cifs_sb = CIFS_SB(sb); - rc = reconn_setup_dfs_targets(cifs_sb, &tgt_list); - if (rc && (rc != -EOPNOTSUPP)) { - cifs_server_dbg(VFS, "%s: no target servers for DFS failover\n", - __func__); + if (rc) { + cifs_sb = NULL; + if (rc != -EOPNOTSUPP) { + cifs_server_dbg(VFS, "%s: no target servers for DFS failover\n", + __func__); + } } else { server->nr_targets = dfs_cache_get_nr_tgts(&tgt_list); }