OpenAFS Master Repository branch, openafs-devel-1_7_x, updated. openafs-devel-1_7_21-128-g3eb9fe1

Gerrit Code Review gerrit@openafs.org
Mon, 11 Mar 2013 10:53:00 -0700 (PDT)


The following commit has been merged in the openafs-devel-1_7_x branch:
commit 3eb9fe1b64d3f68504ad4f47b4534b0815a03f91
Author: pete scott <pscott@kerneldrivers.com>
Date:   Tue Mar 5 13:21:41 2013 -0700

    Windows: RDR SymbolicLink create support
    
    Permit the redirector to handle Microsoft's IO_REPARSE_TAG_MOUNT_POINT
    and IO_REPARSE_TAG_SYMLINK requests.   The IO_REPARSE_TAG_SYMLINK request
    is issued as a result of a CreateSymbolicLink Win32 API.
    
    Creating a symlink in Windows is not equivalent to the way a symlink is
    created in AFS or UNIX.  Instead of creating a symlink object whose data
    string represents the target and mode bits indicate that the stream should
    be treated as a link, on Windows it is a two step process.
    
    To create a symlink to a directory, create an empty directory and then
    assign the reparse tag data to the directory object.  To create a symlink
    to anything else, create an empty file and assign the reparse tag data to
    the file.  Deleting a reparse point simply removes the reparse tag data
    and not the underlying directory or file.
    
    The way this will work for AFS is that assigning reparse data to an
    existing directory or file will require that the object be deleted from
    the directory and a new symlink object be created in its place.  This is
    why upon successful completion of the upcall to the service the directory
    object information has the AFS_OBJECT_FLAGS_DIRECTORY_ENUMERATED flag
    cleared.
    
    This patchset permits symlink creation but does not do anything to support
    symlink removal.
    
    Symlink target data is not validated.
    
    Reviewed-on: http://gerrit.openafs.org/9424
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
    (cherry picked from commit 0cc602a065f5df9959f735ff14e05a6798b9b0b9)
    
    Change-Id: I1d481ca9b191e9e23391c16cf38f0ea1485644df
    Reviewed-on: http://gerrit.openafs.org/9557
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

 src/WINNT/afsrdr/common/AFSRedirCommonDefines.h |    1 +
 src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp  |  155 +++++++++++++++-
 src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp    |  225 ++++++++++++++++++++---
 src/WINNT/afsrdr/kernel/lib/Include/AFSCommon.h |    7 +
 4 files changed, 355 insertions(+), 33 deletions(-)

-- 
OpenAFS Master Repository