OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_76-3440-g6136b23
Gerrit Code Review
gerrit@openafs.org
Fri, 22 Feb 2013 13:12:39 -0800 (PST)
The following commit has been merged in the master branch:
commit 11aa3e09e591b325e80c5d4a420051923f121b82
Author: Rod Widdowson <rdw@steadingsoftware.com>
Date: Mon Feb 18 10:33:29 2013 -0500
Windows: Call CcDeferWrite rather than loop
If we are about to write into the cache and we do not have enough
memory we call CcDeferWrite and return STATUS_PENDING. This allows
the cache to call us back when there is memory.
The write is performed on the IO queue which is shared wth paging
writes. However this does not cause paging writes to block in a
memory shortage situation since the request will either be deferred
again (releasing a thread to service a paging write) or will complete
quickly. Further we allocate all our resources upfront so we fail
fast and in the appropriate place.
Change-Id: I4efbc14a97d3b34236643973f1f8f85c7ea194a6
Reviewed-on: http://gerrit.openafs.org/9127
Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Peter Scott <pscott@kerneldrivers.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp | 162 +++++++++++++++++++++-
src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp | 51 +++++--
src/WINNT/afsrdr/kernel/lib/Include/AFSCommon.h | 13 ++-
src/WINNT/afsrdr/kernel/lib/Include/AFSDefines.h | 1 +
4 files changed, 208 insertions(+), 19 deletions(-)
--
OpenAFS Master Repository