Rx: Do not drop call lock in rx_WriteProc* and rx_ReadProc*
authorJeffrey Altman <jaltman@your-file-system.com>
Fri, 15 Jan 2010 14:18:50 +0000 (09:18 -0500)
committerJeffrey Altman <jaltman|account-1000011@unknown>
Sat, 16 Jan 2010 02:02:15 +0000 (18:02 -0800)
commitc5d9f23cde1a024835582536e56cf4ea1652b7a8
tree0d6feea89ef85c657071895bbbab77cc9fed624b
parentc1b74af7504e699ac831c81d0d7556ca36239298
Rx: Do not drop call lock in rx_WriteProc* and rx_ReadProc*

rx_WriteProc and rx_ReadProc has special fast logic that
handles the most frequent case.  This code was called
without obtaining the call lock. However, each of these functions
must obtain the call lock for the queue_IsNotEmpty() test and
must re-obtain the call lock if the rxi_XXX variant is required.
Dropping the lock and re-obtaining it is more expensive than
holding it across the memcpy.  Therefore, we shouldn't drop the
lock until we are done.

Change-Id: Icca679567994e91bbbf3afec72b863d986f86582
Reviewed-on: http://gerrit.openafs.org/1108
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
src/rx/rx_rdwr.c