Bluetooth: cmtp: Fix session cleanup on failed conn add

Once the session thread is running, cleanup must be handled
by the session thread only.

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
This commit is contained in:
Peter Hurley 2011-08-05 10:53:52 -04:00 committed by Gustavo F. Padovan
parent ff062ea109
commit 687beaa0d1
1 changed files with 6 additions and 5 deletions

View File

@ -382,16 +382,17 @@ int cmtp_add_connection(struct cmtp_connadd_req *req, struct socket *sock)
if (!(session->flags & (1 << CMTP_LOOPBACK))) { if (!(session->flags & (1 << CMTP_LOOPBACK))) {
err = cmtp_attach_device(session); err = cmtp_attach_device(session);
if (err < 0) if (err < 0) {
goto detach; atomic_inc(&session->terminate);
wake_up_process(session->task);
up_write(&cmtp_session_sem);
return err;
}
} }
up_write(&cmtp_session_sem); up_write(&cmtp_session_sem);
return 0; return 0;
detach:
cmtp_detach_device(session);
unlink: unlink:
__cmtp_unlink_session(session); __cmtp_unlink_session(session);