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