aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/connect.c
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2007-10-04 16:05:09 -0400
committerSteve French <sfrench@us.ibm.com>2007-10-04 16:05:09 -0400
commita013689ddb2a4ba5f0452c053c0bf00bafb686f1 (patch)
treedaffe3644ed321b602a1f6a4e97dc6c6ef329dfb /fs/cifs/connect.c
parentd12fd121afd4f87cbc7675f8f6b651d649534f15 (diff)
[CIFS] Fix cifsd so shuts down when signing fails during mount
Fixes two problems: 1) we dropped down to negotiating lanman if we did not recognize the mechanism (krb5 e.g.) 2) we did not stop cifsd (thus will fail when doing rmod cifs with slab free errors) when we fail tcon but have a bad session (which is the case in which signing is required but we don't allow signing on the client) It also turns on extended security flag in the header when passing "sec=krb5" on mount command (although kerberos support is not done of course) Acked-by: Jeff Layton <jlayton@redhat.com> CC: Shaggy <shaggy@us.ibm.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/connect.c')
-rw-r--r--fs/cifs/connect.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index fc3a851357fc..c0cd3ce56e9f 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -2172,8 +2172,18 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
2172 if (tsk) 2172 if (tsk)
2173 kthread_stop(tsk); 2173 kthread_stop(tsk);
2174 } 2174 }
2175 } else 2175 } else {
2176 cFYI(1, ("No session or bad tcon")); 2176 cFYI(1, ("No session or bad tcon"));
2177 if ((pSesInfo->server) &&
2178 (pSesInfo->server->tsk)) {
2179 struct task_struct *tsk;
2180 force_sig(SIGKILL,
2181 pSesInfo->server->tsk);
2182 tsk = pSesInfo->server->tsk;
2183 if (tsk)
2184 kthread_stop(tsk);
2185 }
2186 }
2177 sesInfoFree(pSesInfo); 2187 sesInfoFree(pSesInfo);
2178 /* pSesInfo = NULL; */ 2188 /* pSesInfo = NULL; */
2179 } 2189 }