freebsd-skq/sys/netsmb
Rick Macklem e06f502c9e When the smbfs iod thread (smb_iod_thread()) is shutting down, smb_iod_destroy()
would call smb_iod_request(). This call could return as soon as the
wakeup(evp) in smb_iod_main() call is done and then could destroy
the mutexes. This caused a race with the rest of smb_iod_main()s
use of these mutexes.
A crash reported on freebsd-stable@ by Christian Kratzer was
diagnosed as a use of one of these mutexes after it was destroyed.
This patch moves destruction of the mutexes from smb_iod_destroy()
to the end of smb_iod_thread(), so that they aren't destroyed before
the thread is done with them. Christian comfirmed that the patch
stopped the crashes from happening.

Reported by:	ck-lists@cksoft.de (Christian Kratzer)
Tested by:	ck-lists@cksoft.de (Christian Kratzer)
Diagnosed by:	jhb
Reviewed by:	jhb
MFC after:	2 weeks
2015-11-16 23:19:53 +00:00
..
netbios.h
smb_conn.c
smb_conn.h
smb_crypt.c
smb_dev.c Update kernel inclusions of capability.h to use capsicum.h instead; some 2014-03-16 10:55:57 +00:00
smb_dev.h
smb_iod.c When the smbfs iod thread (smb_iod_thread()) is shutting down, smb_iod_destroy() 2015-11-16 23:19:53 +00:00
smb_rq.c
smb_rq.h
smb_smb.c
smb_subr.c
smb_subr.h
smb_tran.h
smb_trantcp.c
smb_trantcp.h
smb_usr.c
smb.h