]> git.michaelhowe.org Git - packages/o/openafs.git/commit
STABLE14-windows-combined-20041010
authorJeffrey Altman <jaltman@mit.edu>
Mon, 11 Oct 2004 00:52:04 +0000 (00:52 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Mon, 11 Oct 2004 00:52:04 +0000 (00:52 +0000)
commit655344ea8fe90534f840c32fdc0c82aac98e89d3
treeaaedada3e8fd75718a6a9bacca8e2efb4a7c4920
parente4ed3723499a12e939a08bcf6084a7df953116eb
STABLE14-windows-combined-20041010

  * fix the Windows cache manager to prevent it from replacing the
    rx_connection object associated with the cm_conn_t object on each
    and every operation if "fs crypt" was set.  This explains the
    dramatic performance difference when crypt is used vs clear.
    The problem: 'cryptall', a boolean flag indicating whether or not
    "fs crypt" is set, was being compared to the rx_connection
    cryptlevel which is either rxkad_clear:0 or rxkad_crypt:2.
    1 != 2 and therefore the rx_connection was always destroyed
    and replaced on each and every operation.

    Lock the cm_conn_t object around every call to RXAFS_xxxx functions.
    It is not safe for the cm_conn_t object to not be locked because
    rx_DestroyConnection might be called from another thread if:
        - the user's tokens have changed or expired
        - the crypt mode has changed

  * Modify cm_Lookup to evaluate a list of possible values for @sys
    instead of just a single entry.  Re-write cm_ExpandSysname and
    add cm_LookupInternal.

  * Reformat affected files

  * Add cache file name to cache creation errors

(cherry picked from commit d8453a3f467e6350da304dbc0f494591737662cd)
src/WINNT/afsd/afsd_init.c
src/WINNT/afsd/cm_buf.c
src/WINNT/afsd/cm_callback.c
src/WINNT/afsd/cm_conn.c
src/WINNT/afsd/cm_dcache.c
src/WINNT/afsd/cm_ioctl.c
src/WINNT/afsd/cm_ioctl.h
src/WINNT/afsd/cm_server.c
src/WINNT/afsd/cm_vnodeops.c
src/WINNT/afsd/cm_vnodeops.h
src/WINNT/afsd/fs.c