A few more wording tweaks as suggested (with some modifications

as well) by Ravi Pokala. Thanks for the comments :-)
Sponsored by: Netflix Inc.
This commit is contained in:
Randall Stewart 2016-08-16 15:17:36 +00:00
parent 587d67c008
commit eadd00f81a
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=304224

View File

@ -307,15 +307,15 @@ tcp_timer_delack(void *xtp)
* should only have grabbed the INP_WLOCK() when
* it entered. To safely switch to holding both the
* INP_INFO_RLOCK() and the INP_WLOCK() we must first
* grab a reference on the inp, this will hold the inp
* so that it can't be removed. We then unlock and grab
* the info-read lock. Once we have the INP_INFO_RLOCK() we
* proceed again to get the INP_WLOCK() but after that
* we must check if someone else deleted the pcb i.e.
* the inp_flags check. If so we return 1 otherwise
* we return 0.
* grab a reference on the inp, which will hold the inp
* so that it can't be removed. We then unlock the INP_WLOCK(),
* and grab the INP_INFO_RLOCK() lock. Once we have the INP_INFO_RLOCK()
* we proceed again to get the INP_WLOCK() (this preserves proper
* lock order). After acquiring the INP_WLOCK we must check if someone
* else deleted the pcb i.e. the inp_flags check.
* If so we return 1 otherwise we return 0.
*
* No matter which the tcp_inpinfo_lock_add() function
* No matter what the tcp_inpinfo_lock_add() function
* returns the caller must afterwards call tcp_inpinfo_lock_del()
* to drop the locks and reference properly.
*/