OpenAFS Master Repository branch, openafs-devel-1_7_x, updated. openafs-devel-1_7_23-32-g55d82bf

Gerrit Code Review gerrit@openafs.org
Tue, 9 Apr 2013 20:19:40 -0700 (PDT)


The following commit has been merged in the openafs-devel-1_7_x branch:
commit 55d82bfca3166dedec08667a0c2e1002784313f7
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date:   Tue Apr 9 10:35:52 2013 -0400

    Windows: CcPurge range modified by non-cached write
    
    When a non-cached non-paging write occurs, the update bypasses the
    Windows cache.  As a result any cached data in the modified range is
    now invalid and must be purged.
    
    CcPurgeCacheSection is known to trigger some filter drivers to open
    the file from a worker thread.  To avoid a deadlock on the
    Fcb->NPFcb->Resource that resource must be dropped.  Holding the
    SectionObjectResource exclusive is sufficient to protect against races
    with other writes, reads and SetEndOfFile operations.  While purging the
    cache prior to calling the service might be more desireable, it cannot be
    done safely without violating the lock hierarchy.  Therefore, the purge is
    performed after any call to the service completes.
    
    Change-Id: I08cd6d9d25f1395e9b5b71dc225ae5827bbe33c7
    Reviewed-on: http://gerrit.openafs.org/9756
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
    Reviewed-by: Peter Scott <pscott@kerneldrivers.com>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
    Reviewed-on: http://gerrit.openafs.org/9768

 src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp |   43 ++++++++++++++++++++++++++++++
 1 files changed, 43 insertions(+), 0 deletions(-)

-- 
OpenAFS Master Repository