OpenAFS Master Repository branch, openafs-devel-1_7_x, updated. openafs-devel-1_7_28-4-gf3f68f6
Gerrit Code Review
gerrit@openafs.org
Thu, 5 Dec 2013 12:32:49 -0800 (PST)
The following commit has been merged in the openafs-devel-1_7_x branch:
commit f3f68f62d7df4be51e3235cf3195379b093bf579
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date: Wed Nov 27 12:26:44 2013 -0500
Windows: RDR capture Cc/Mm exceptions do not break
All of the Cc and Mm functions are wrapped in try/except blocks.
The purpose is to ensure that Cc and Mm do not return an error as
an exception which could result in the afs redirector failing to
release a resource. Instead of calling the AFS exception handler
just handle the exception with EXCEPTION_EXECUTE_HANDLER. This permits
the __except block to capture the exception code.
The AFS exception handler will throw its own exception if the
AFSDebugFlags AFS_DBG_BUGCHECK_EXCEPTION bit is set. This is helpful when
debugging exceptions thrown by errors in the afs redirector code. It is
not helpful when a Cc function throws an exception. For example,
CcReadCopy() will throw STATUS_DELETE_FILE as an exception if an attempt
to read from a deleted file is initiated. This should simply fail the
read operation not BSOD the system.
Reviewed-on: http://gerrit.openafs.org/10524
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit 9b6f79108725dc5b6d4cbea4697199e5e745dc99)
Change-Id: I444915bacd73a991860a9952aa932ad1b5ac0de7
Reviewed-on: http://gerrit.openafs.org/10536
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
src/WINNT/afsrdr/kernel/lib/AFSCleanup.cpp | 2 +-
src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp | 2 +-
src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp | 253 +++++++++++++++++----------
src/WINNT/afsrdr/kernel/lib/AFSRead.cpp | 8 +-
src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp | 10 +-
5 files changed, 172 insertions(+), 103 deletions(-)
--
OpenAFS Master Repository