OpenAFS Master Repository branch, openafs-devel-1_7_x, updated. openafs-devel-1_7_4-64-g6082e42
Gerrit Code Review
gerrit@openafs.org
Thu, 19 Jan 2012 23:03:25 -0800 (PST)
The following commit has been merged in the openafs-devel-1_7_x branch:
commit 6082e42964623222709f4ef5d54583d10dfb16ea
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date: Sat Jan 14 10:32:51 2012 -0500
Windows: cm_EndCallbackGrantingCall refactoring
Refactor cm_EndCallbackGrantingCall to prevent assigning a
callback to the cm_scache object in the case where it is going
to be discarded. If the race was lost the callback data was
already discarded by cm_RevokeCallback. By assigning and then
discarding we are forced to issue an additional change notification
to the smb client or afs redirector. Not only is this extra work
but the afs redirector notification can result in a deadlock with
a kernel thread that is waiting for the current thread to complete.
modify the function signature to return whether or not a race
was lost with a callback revocation.
rename 'freeFlag' to 'freeRacingRevokes' since that is what
the flag is meant to indicate.
create a new 'freeServer' flag to indicate when the server
reference should be released. There was a leak of server
references when a race occurred.
modify all calls to cm_EndCallbackGrantingCall() that provide
an AFSCallBack structure on input to check for a lost race.
If a race occurs, cm_MergeStatus() should not be performed.
Reviewed-on: http://gerrit.openafs.org/6556
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
(cherry picked from commit 503d09413add1831dff5db24ee907eec59eda9e2)
Change-Id: I6d4ff712fb612e02fc09ecf8cdc8deefafb9ee12
Reviewed-on: http://gerrit.openafs.org/6586
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
src/WINNT/afsd/cm_callback.c | 108 +++++++++++++++++++++++-------------------
src/WINNT/afsd/cm_callback.h | 2 +-
src/WINNT/afsd/cm_conn.c | 2 -
src/WINNT/afsd/cm_vnodeops.c | 32 +++++++-----
4 files changed, 80 insertions(+), 64 deletions(-)
--
OpenAFS Master Repository