OpenAFS Master Repository branch, master, updated. BP--openafs-stable-1_6_x-1659-g3f3fede

Gerrit Code Review gerrit@openafs.org
Thu, 15 Sep 2011 11:27:02 -0700 (PDT)


The following commit has been merged in the master branch:
commit b91d39edec6a8bdb7451ed6f52ea2ad2065b0022
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date:   Thu Sep 15 01:11:15 2011 -0400

    Windows: Redirector interface for afsd_service.exe
    
    Over the last three years the afsd_service sources have been
    gradually separated into distinct layers for the SMB server
    and the AFS cache.  The eventual goal of this work was to
    permit the addition of alternative interfaces to the cache
    manager in parallel.
    
    This patchset implements the first alternative interface,
    a reverse ioctl model that communicates with a native IFS
    redirector driver.  The driver will be submitted in a
    subsequent patchset.
    
    Although it is possible to run afsd_service with both the
    SMB and RDR interfaces active at the same time.  In practice
    it is somewhat impractical because it destroys the uniformity
    of the \\AFS name space.  The RDR loads at boot time and claims
    all of \\AFS.  The SMB interface if active at the same time
    must use the old \\%HOSTNAME%-AFS.  As implemented, if the RDR
    interface is functional the SMB interface is not started.  Only
    if the RDR interface fails will the SMB interface be activated.
    
    The afsd_service.exe maintains all of its primary responsibilities
    for communicating with the AFS servers, processing callbacks,
    enforcing permissions, handling afs path ioctls, Windows RPC
    service simulation, and object management.  The biggest change
    is in the cm_buf_t management.  Data is exchanged with the
    RDR by passing control over cm_buf_t->data buffers in the form
    of Windows File Extents.  This avoids data copies across a
    communication channel which significantly improves performance
    at a substantial complexity cost.
    
    Credential management is switched from a Windows username binding
    to a GUID binding where the GUIDs represent authentication groups
    that are managed by the RDR.
    
    This patchset includes additional changes to support integrated
    logon in conjunction with the RDR.  In particular, adding support
    for authentication groups.
    
    Change-Id: I7135489421c67a429ec3b2acd4c8ae08b8329f6d
    Reviewed-on: http://gerrit.openafs.org/5432
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Tested-by: Rod Widdowson <rdw@steadingsoftware.com>
    Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
    Tested-by: Jeffrey Altman <jaltman@openafs.org>

 src/WINNT/afsd/NTMakefile             |   25 +-
 src/WINNT/afsd/afsd.h                 |    1 +
 src/WINNT/afsd/afsd_init.c            |   59 +-
 src/WINNT/afsd/afsd_service.c         |   30 +-
 src/WINNT/afsd/afslogon.c             |   29 +-
 src/WINNT/afsd/afslogon.h             |    5 +-
 src/WINNT/afsd/cm.h                   |    4 +
 src/WINNT/afsd/cm_aclent.c            |   38 +
 src/WINNT/afsd/cm_buf.c               |  766 +++++-
 src/WINNT/afsd/cm_buf.h               |   58 +-
 src/WINNT/afsd/cm_callback.c          |   38 +-
 src/WINNT/afsd/cm_callback.h          |    1 +
 src/WINNT/afsd/cm_conn.c              |   16 +-
 src/WINNT/afsd/cm_conn.h              |    4 +-
 src/WINNT/afsd/cm_daemon.c            |   28 +-
 src/WINNT/afsd/cm_dcache.c            |   11 +-
 src/WINNT/afsd/cm_freelance.c         |   14 +
 src/WINNT/afsd/cm_ioctl.c             |   92 +-
 src/WINNT/afsd/cm_ioctl.h             |    3 +-
 src/WINNT/afsd/cm_memmap.c            |   96 +-
 src/WINNT/afsd/cm_memmap.h            |   17 +-
 src/WINNT/afsd/cm_performance.c       |    2 +-
 src/WINNT/afsd/cm_rdr.h               |   41 +
 src/WINNT/afsd/cm_scache.c            |  155 +-
 src/WINNT/afsd/cm_scache.h            |   16 +-
 src/WINNT/afsd/cm_server.c            |   13 +-
 src/WINNT/afsd/cm_vnodeops.c          |   99 +-
 src/WINNT/afsd/cm_vnodeops.h          |    7 +-
 src/WINNT/afsd/cm_volstat.c           |  149 +-
 src/WINNT/afsd/cm_volstat.h           |   26 +-
 src/WINNT/afsd/cm_volume.c            |    2 +-
 src/WINNT/afsd/fs.c                   |    2 +-
 src/WINNT/afsd/logon_ad.cpp           |  725 +++--
 src/WINNT/afsd/smb.c                  |   19 +-
 src/WINNT/afsd/smb3.c                 |    2 +
 src/WINNT/afsrdr/user/RDRFunction.c   | 5334 +++++++++++++++++++++++++++++++++
 src/WINNT/afsrdr/user/RDRInit.cpp     | 2033 +++++++++++++
 src/WINNT/afsrdr/user/RDRIoctl.c      | 1971 ++++++++++++
 src/WINNT/afsrdr/user/RDRIoctl.h      |  195 ++
 src/WINNT/afsrdr/user/RDRPipe.c       |  351 +++
 src/WINNT/afsrdr/user/RDRPipe.h       |  244 ++
 src/WINNT/afsrdr/user/RDRPrototypes.h |  360 +++
 42 files changed, 12590 insertions(+), 491 deletions(-)

-- 
OpenAFS Master Repository