OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_61-45-gdb717c6

Gerrit Code Review gerrit@openafs.org
Thu, 20 Aug 2009 15:40:48 -0700 (PDT)


The following commit has been merged in the master branch:
commit db717c69dad1518043cb317aedb6d082476386f0
Author: Jeffrey Altman <jaltman@secure-endpoints.com>
Date:   Thu Aug 20 17:22:08 2009 -0400

    Windows: Correct buf_Write data loss errors
    
    buf_Write has two errors in it.  First, if offset at which the
    write is supposed to begin does not align with the cm_data.blockSize,
    then (offset %blockSize) octets at the end of the write will fail
    to be written to the file server.   Second, if there is no knowledge
    of the file server's ability to handle RXAFS_StoreData64 calls
    and the file server does not support StoreData64 calls, then the
    first chunkSize of data will be written to the file server before
    the RXGEN_OPCODE error is detected.  In this case a retry using
    RXAFS_StoreData is performed but the values of 'nbytes' and 'qdp'
    were not reset before the retry.  As a result, the first chunkSize
    of data would fail to be written to the file server.
    
    The second problem can reliably occur when connectivity between the
    cache manager and the file server is interrupted due to firewall
    port mapping closures.  Upon establishing a new rx connection, a
    SRXAFSCB_InitCallBackState3 RPC will be issued by the file server
    erasing any prior knowledge of the file server's ability to process
    64-bit data operations.  If the first 64-bit operation is a
    StoreData64, then data loss will occur.
    
    LICENSE MIT
    
    FIXES 125220
    FIXES 108199
    
    Reviewed-on: http://gerrit.openafs.org/332
    Tested-by: Asanka Herath <asanka@secure-endpoints.com>
    Reviewed-by: Asanka Herath <asanka@secure-endpoints.com>
    Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
    Tested-by: Jeffrey Altman <jaltman@openafs.org>

 src/WINNT/afsd/cm_dcache.c |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

-- 
OpenAFS Master Repository