OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_76-2061-g52c3bac
Gerrit Code Review
Sat, 31 Dec 2011 13:45:20 -0800 (PST)
The following commit has been merged in the master branch:
Author: Jeffrey Altman <firstname.lastname@example.org>
Date: Fri Dec 30 01:34:51 2011 -0500
Windows: AFSDirEnumResp and AFSDirEnumEntry changes
A directory enumeration is not an atomic operation. The redirector
reads an enumeration a chunk at a time. During the entire enumeration
it is possible that the data version of the directory object has
changed due to entries being added or removed. This patchset adds
two data version values to the AFSDirEnumResp structure.
The first is the snapshot data version which is the dv of the
directory object at the time the entry list snapshot was taken.
The second is the current data version number of the directory
If an object has been removed from the directory after the snapshot
was taken, attempts to fetch status information for the object will
fail with a VNOVNODE (aka CM_ERROR_BADFD aka STATUS_INVALID_HANDLE).
The NTStatus field has been added to the AFSDirEnumEntry structure
to permit notifying the redirector of such failures.
RDR_PopulateCurrentEntry() has been extended with an additional
cm_Error parameter that accepts the errorCode field provided by
the cm_direnum_entry_t object constructed during the enumeration.
Reviewed-by: Jeffrey Altman <email@example.com>
Tested-by: Jeffrey Altman <firstname.lastname@example.org>
src/WINNT/afsrdr/common/AFSUserStructs.h | 6 ++
src/WINNT/afsrdr/user/RDRFunction.c | 125 +++++++++++++++++-------------
2 files changed, 77 insertions(+), 54 deletions(-)
OpenAFS Master Repository