+Since 1.5.1:
+
+ * A deadlock was detected when performing "fs flushall" if the
+ file server reports VNOVNODE. The scp->createBufferLock is
+ already held by the current thread and there is no mechanism
+ to propagate the knowledge. Therefore, an alternate mechanism
+ for clearing the cache must be developed. A new function
+ cm_RecycleSCache(scp,flags) has been extracted from
+ cm_GetNewSCache(). This function performs the task of recycling
+ an cm_scache_t object. When called from cm_GetNewSCache() with
+ no flags the expectation is that there are no associated buffers
+ that are queued to be read or written. When called from
+ cm_Analyze() with the CM_SCACHE_RECYCLEFLAG_DESTROY_BUFFERS
+ flag, any queued buffers will be de-queued and marked as if
+ the operations were performed so the data can be discarded.
+
+ * CM_ERROR codes were logged as "unknown" by cm_Analyze.
+
+ * In response to VNOVNODE, the parent is only discarded if the current
+ cm_scache_t is not a directory.
+
+ * In the Ioctl FlushFile and FlushVolume functions, there were no
+ checks to protect against flushing the Freelance SCache entries.
+
+ * In FlushFile, the wrong cm_scache_t object was being released.
+
+ * In cm_GetNewSCache, do not allow Freelance SCache entries to be
+ recycled. Choose a new entry if cm_RecycleSCache fails.
+
+ * Speed up the performance of the cache manager by not
+ holding the smb_fid_t mutex across calls to cm_SyncOp
+ and AFS RPCs.
+
+ * Ensure that all smb_fid_t flag references are protected.
+
+ * Remove a deadlock between smb_fid_t mutex and
+ smb_rctLock introduced in 1.4.1.
+
+ * Fix aklog AFSID lookup to use not send the realm
+ name when the realm is the local realm for the
+ cell. The PT Server doesn't strip the realm
+ name when it is the local realm.
+
+ * Treat "\\afs\*." as an alias for "\\afs\all"
+
+ * Dynamically adjust the priority of server threads
+ based upon the age of the CIFS request that is
+ being processed. The priority is bumped one level
+ for every 15 seconds of processing time.
+
+ * The original openafs contribution mis-used the
+ cm_GetCallback function. This function should only
+ be called as a side effect of a call to
+ cm_SyncOp(CM_SCACHESYNC_NEEDCALLBACK). The way it
+ was being called results in a FetchStatus RPC being
+ performed even when the client already has a valid
+ callback and does so in a manner that destroys the
+ synchronization of the threads that are calling
+ cm_SyncOp. If nothing else this results in a
+ significant performance penalty.
+
+ * More changes to cleanup of smb_vc_t objects in
+ order to prevent race conditions.
+
+ * Reduce the amount of Power Management event logging
+ to afsd_init.log
+
+ * If the client detects that the IP address has
+ changed, force the use of new RX connections. This
+ enables the file server to recognize that the client
+ has moved.
+
+ * Remove a race condition and deadlock associated
+ with cleanup of smb_vc_t objects.
+
+ * Fix the ANSI filename support. One function that
+ required it was missing the translations.
+
+Changes not present in 1.4.1 and since 1.5.0: 1.5.1 released
+(24 April 2006)
+
+ * Add a DllMain() function to afspthread.dll. Perform
+ cleanup of thread local storage, rx queues, critical
+ sections, event handles, etc. This was implemented
+ to avoid crashes in afspthread.dll when applications
+ which load/unload the dll attempt to terminate.
+
+ * Lock request behavior has been altered. As of this
+ release a locally allocated lock will be used whenever
+ the volume is RO or the requesting user's permissions
+ are 'rl'. This will allow end users to execute programs
+ from RW volumes when they do not have the 'k' privilege.
+
+ Note that a recent discovery indicates that the 'k' bit
+ is only supposed to control the ability to obtain read
+ locks. Write locks are to be controlled by the 'w' and
+ 'i' privilege bits.
+
+ * Code has been added to enable the cache manager to be
+ able to obtain the AFSID of the authenticated user.
+ This is required to be able to determine when "Insert"
+ privileges should apply. AFS considers a file to be
+ a new file whenever the owner's AFSID matches the
+ AFSID of the user. The current implementation relies
+ on the name specified during the SetToken call to be
+ correct. This will be replaced in the future with a
+ new RPC that allows the AFSID of the authenticated
+ user to be obtained.
+
+ * A 32-bit-tools installer for use on 64-bit systems
+ is now available. These tools are for use with 32-bit
+ versions of Kerberos for Windows or JPSoftware's 4NT.
+
+Since 1.4.1 rc10: 1.4.1 final released (9 April 2006)
+
+ * Remove the use of the "active_vcp" variable. This variable
+ no longer serves any useful purpose and was the cause of
+ race conditions that produced under counts of the smb_vc_t
+ references.
+
+ * Change default minidump output to include data segments
+
+ * restore access to cm_IoctlGetVolumeStatus and
+ cm_IoctlSetVolumeStatus calls for AFS pioctl operations.
+ Still need to figure out why they are being called
+ for SMB/CIFS IOCTL operations instead of Trans2GetFileInfo.
+
+Changes not present in 1.4.1: 1.5.0 released (16 Feb 2006)
+
+ * Update build system to include the "sys_name" in the
+ obj and dest paths.
+
+ * optimize the number of calls to obtain the smb_user_t for a
+ smb virtual circuit.
+
+ * add logging of server addresses, status and capabilities when
+ pinging the server.
+
+ * prevent multiple threads from pinging the same server simultaneously.
+ instead, threads block and then use the result of the ping that was
+ already taking place.
+
+ * Add registry values to allow the defaults for daemon checks to be altered
+ at startup. Log values to afsd_init.log.
+
+ daemonCheckDownInterval
+ daemonCheckUpInterval
+ daemonCheckVolInterval
+ daemonCheckCBInterval
+ daemonCheckLockInterval
+ daemonCheckTokenInterval
+
+ * Add EventLog messages for transitions in fs crypt state.
+
+ * Byte range locking (when locks will be obtained from the
+ is still under discussion)
+
+ * 64-bit Windows operating systems now supported
+ (XP SP2 64-bit, 2003 SP1 64-bit, 2003 R2 64-bit)
+ This is a native 64-bit implementation of OpenAFS for Windows.
+ There is currently no 64-bit version of KFW and therefore
+ there is no (easy) method for obtaining AFS credentials.
+ 32-bit KFW 3.0 can be used with 32-bit OAFW libraries
+ to obtain AFS tokens but there is not for the feint of
+ heart.
+
+ * A faster implementation of the fcrypt algorithms improves
+ performance.
+
+ * The afsd_service.exe now supplies Event Log Message Text.
+ The event log no longer generates warning text due to lack
+ of message configuration.
+
+ * When afs servers are unreachable and network stack returns
+ a WSAEHOSTUNREACHABLE error, the AFS client will immediately
+ mark the attempted server as being down. This allows for
+ very fast response to the calling application. This change
+ has a pronounced improvement when the Windows Explorer is
+ used on disconnected mobile computers.
+
+ * Added DebugOutputString debugging of the RX library
+
+Since 1.4.1 rc9: 1.4.1 rc10 released (10 March 2006)
+
+ * Fix the rx-lwp implementation to randomly generate rx call
+ identifiers which are supposed to be unique at a given point
+ in time. This affects some of the command line tools used
+ for debugging but not the AFS Client Service itself which
+ uses the rx-pthreads implementation.
+
+ * xstats_fs_test.exe and xstats_cm_test.exe are now built for
+ Windows although they are not distributed
+
+ * don't generate an exception when logging unexpected SMB packets
+
+ * the data structures used by cm_IoctlGetVolumeStatus and
+ cm_IoctlSetVolumeStatus are not compatible with the CIFS
+ Get/Set File Information calls so don't bother executing them.
+
+Since 1.4.1 rc8:
+
+ * Fix data written to registry as part of BackConnectionHostnames
+ data value
+
+ * Fix initialization bug when allocating cm_server_t objects that
+ would cause servers to appear to be down after each allocation
+ or renewal. Server would appear up after the next check servers
+ cycle.
+
+Since 1.4.1 rc7:
+
+ * Windows will return WSAECONNRESET to the next receive packet
+ operation on a socket if an ICMP packet is received in response
+ to a packet that was sent and could not be delivered because
+ the port was unreachable. We have to treat this as
+ WSAEWOULDBLOCK so that we can retry the select() check and
+ not mark the connection as bad.
+
+Since 1.4.1 rc6: 1.4.1 rc7 released (14 Feb 2006)
+
+ * The client manager maintains a least recently used list of
+ all the ACLs. If an ACL is already the most recently used
+ do not bother to remove it from the list and place it on the
+ front.
+
+ * As part of the process of adding a new server, set the
+ server is down flag and then perform a ping. If the server
+ is up, the flag will be reset. If the server is down, the
+ client will not timeout unnecessarily while attempting to
+ perform real work.
+
+ * If a Mountpoint String is the empty string, return PATH NOT
+ FOUND.
+
+ * Modify behavior of the Network Provider to avoid querying the
+ profile location if integrated logon is known to be disabled.
+
+ * Correct behavior of 'LogoffPreserveTokens'. When set, tokens
+ will always be preserved regardless of whether or not integrated
+ logon was used to obtain tokens. When unset, tokens will be
+ destroyed regardless of whether integrated logon was used to
+ obtain the tokens unless the profile is stored in AFS.
+
+ * Disable LogoffTransferToken functionality. The SMB V3 Logoff
+ message is being delivered even when the user is not logging
+ off of the computer.
+
+ * Fix a deadlock condition introduced in rc6.
+
+ * Cell names are case-insensitive. Since the founding of OpenAFS
+ there has been a bug that treated "cell", "Cell", and "CELL" as
+ different cells. This would result in what appeared to be
+ random disappearance of user tokens or a failure to authenticate
+ even when tokens were listed by the "tokens" command.
+
+Since 1.4.1 rc5: 1.4.1 rc6 released (2 Feb 2006)
+
+ * Additional auditing of the smb code revealed that smb ioctl
+ operations were failing to free smb_fid_t objects
+
+ * The File Identifiers assigned to smb_fid_t objects could be
+ given the value 65535 which is 0xFFFF which is also the
+ INVALID_HANDLE value. Both 0 and 65535 are now treated as
+ reserved values.
+
+ * Audited all assignments to fields and ensured that they are
+ protected by obtaining the relevant mutex object.
+
+ * Re-wrote the VNOVNODE handling to avoid a potential deadlock
+ if both the current cm_scache_t object and its parent are
+ both returning VNOVNODE.
+
+ * Removed all the logic associated with the 'dead_vcp' variable
+ which must have been added for debugging because its used
+ was never thread safe and it truly served no purpose.
+
+Since 1.4.1 rc4: 1.4.1 rc5 released (18 Jan 2006)
+
+ * Check access permissions to the file before the file is
+ truncated.
+
+ * More improvements to the handling of SMB Virtual Circuits
+ when SMB sessions are closed.
+
+ * Correct a race condition introduced in rc4 that could result
+ in a crash of afsd_service.exe.
+
+Since 1.4.1 rc3: 1.4.1 rc4 released (11 Jan 2006)
+
+ * Properly handle pre-mature SMB session closures.
+ File handles, tree connections, and user sessions are now
+ freed when the virtual circuit is closed.
+
+ * smb_username_t and smb_user_t objects are now properly reference
+ counted and freed as appropriate.
+
+ * disable to use of AFS file locks. byte range locking is still
+ implemented but all locks are managed locally. This prevents
+ multiple processes from editing the same file on the same
+ machine but it does prevent multiple processes on separate
+ machines from modifying the file.
+
+Since 1.4.1 rc2: 1.4.1 RC3 released (4 Jan 2006)
+
+ * A fix to "fs setserverprefs -vlserver". Multiple calls with
+ the same server parameter would result in a panic condition
+ if the server had not already been contacted by the AFS
+ client service.
+
+ * Better warnings are written to the afsd.log file when
+ the Windows RPC Protocols are not properly configured as
+ is often the case on Windows 2000.
+
+ * fix the procmgmt library to restore C RTL signal handlers when
+ it is being detached from the process prior to process termination.
+
+Since 1.4.1 rc1: 1.4.1 RC2 released (30 Nov 2005)
+
+ * close a lock leak in the rx library that could be triggered while
+ processing aborts
+
+ * prevent removal of drive mappings in response to afscreds.exe -M
+
+ * add logic to process VNOVNODE in cm_Analyze. Force re-evaluation of symlink
+ strings and flush the stat cache entry.
+
+ * prevent server objects from being freed if user preferences are set.
+
+ * Update WIX support to 2.0.2419.0
+
+ * Release all locks on the server at service shutdown.
+
+ * A down server should be marked up as long as it responds to the client.
+ It doesn't matter if the server returned an error as long as the error
+ is something other than VRESTARTING. If there is such an error, all
+ connections on that server should be marked for replacement.
+
+ * Change the check "up" servers period from once per hour to once every
+ ten minutes. This matches the behavior of the Unix cache manager.
+
+Post 1.4.0 revisions: 1.4.1 RC1 released (21 Oct 2005)
+ * Byte Range Locking support has been added. Architectural documentation
+ is located within src/WINNT/afsd/cm_vnodeops.c. Best efforts are
+ made to enforce Windows mandatory locking model using locally managed
+ byte range locks with full file locks obtained from the file server.
+ Read-only volumes provide the user with an implied locking privilege.
+ Read-write volumes require that a user be granted the locking privilege
+ in order for a lock to be obtained. As most Windows applications use
+ Shared file access modes, they require the ability to obtain locks in
+ order to access files.
+
+ * Implement error translation functions to convert Universal Error Codes
+ output by modern servers to local errno and winsock error values.
+ This fixes the error message problems using pioctl() calls from fs.exe
+ and the AFS Shell Extension.
+
+Since 1.4.0 rc8: 1.4.0 final tagged (20 Oct 2005); released (31 Oct 2005)
+ * Allow the AFS Client Service to set the firewall configuration by
+ retrying until after Windows determines the boot period is over.
+
+ * Do not attempt to configure the firewall on Windows 2000, XP pre-SP2,
+ or 2003 pre-SP1
+
+ * Detect IP address changes from within the AFS Client Service for the
+ purpose of checking down servers sooner
+
+ * If the file server or vldb server report RXKADUNKNOWNKEY, return
+ SEC_E_NO_KERB_KEY to Windows. This provides an indication to the
+ user that there is a Kerberos key problem. Previously the user would
+ receive no feedback when there was something wrong.
+
+ * Fix the large integer library support to properly handle values greater
+ than 32-bits
+
+Since 1.4.0 rc7: 1.4.0 rc8 released (15 Oct 2005)
+ * Updated CellServDB
+
+ * Fixed file name pattern matching. Question marks can match nothing
+ if found at the end of a component.
+
+Since 1.4.0 rc6: 1.4.0 rc7 released (8 Oct 2005)
+ * Kerberos 5 ticket lifetimes should adhere to KFW Leash lifetimes
+
+ * The MSI installer now has a new Product ID for each build. This
+ is to allow for automated upgrades. The Upgrade ID is remaining
+ constant.
+
+ * Volumes that were cached and then subsequently were salvaged,
+ moved or otherwise taken temporarily offline (as opposed to being
+ busy) would become unreachable. A distinction is now made between
+ a volume being offline and a server being down.
+
+Since 1.4.0 rc5: 1.4.0 rc6 released (2 Oct 2005)
+
+ * Fixed several AFS Shell Extension issues:
+ - Checking Server Status would only work if a specific cell was
+ specified.
+ - If servers were down, the Server Down dialog would write to
+ invalid memory and cause explorer.exe to crash
+ - Default Push Buttons were not specified for many dialogs
+ - The extension would be unloaded by the Explorer Shell and
+ never be reloaded under some circumstances.
+
+ * Fixed the AFS System Tray menu to disappear if another Window
+ was selected before a menu item was selected
+
+ * Added volume owner and group information to "fs examine" output
+
+ * Added fs and registry support for enabling/disabling/clearing
+ rx statistics gathering.
+
+Since 1.4.0 rc4: 1.4.0 rc5 released (25 Sep 2005)
+
+ * New Product Code GUIDs issues for 1.4 and 1.5 branches. Separate
+ GUIDs for each platform.
+
+ * Documentation directory structure and default installation rules
+ for MSI
+
+ * New OpenAFS for Windows HTML Release Notes installed
+ as part of the documentation set.
+
+ * Add thread id to rx debugging messages
+
+ * When all servers are offline, return a bad network path error
+ immediately. This is necessary to allow Explorer to do the
+ right thing and not hang. The background daemon thread will
+ check the down servers every 30 seconds to see if they are
+ back up.
+
+Since 1.4.0 rc3: 1.4.0 rc4 released (14 Sep 2005)
+
+ * The AFSCache file has been modified to store both the
+ serial number of the volume on which the file resides
+ and the SID of the local machine. If either change,
+ a new UUID is generated.
+
+ * add "fs flushall" command that forces all data buffers
+ to be flushed.
+
+Since 1.4.0 rc2: 1.4.0 rc3 released (4 Sep 2005)
+
+ * add support for '/' instead of '\' in pioctl() calls
+
+ * Apply AFS Client Admins group protect to AFS Shell Extension
+
+ * Add support for \\afs\<name> to most AFS Shell Extension
+ commands except the symlink methods.
+
+ * when installing the Microsoft Loopback Adapter, enable
+ MS Client for Networks and prevent an install failure
+ by not calling CoInitialize twice in the same thread.
+
+ * reload cell vldb values from the CellServDB every two
+ hours in case it changes
+
+ * When updating cell information from DNS, be sure to set
+ a new timeout.
+
+ * Add support to allow use of \\AFS\<foo> where <foo> is
+ either a mount point or symlink. As <foo> is normally
+ treated as a share name, we transform it into \\AFS\all\<foo>
+ for processing.
+
+ * Init 'code' to prevent false errors when integrated logon
+ is disabled and the service is not running
+
+Since 1.4.0 rc1: 1.4.0 rc2 released (28 Aug 2005)
+
+ * Removed trace log messages that were hampering performance.
+
+ * Fixed a deadlock that was being triggered by editing Word
+ documents stored within AFS with WinWord 2003.
+
+ * Bit 3 of the TraceOption registry value is now used to set the
+ default for "fs trace" in the non-Debug builds. The new default
+ is off for release builds and on for debug builds.
+
+ * Bit 2 of the TraceOption registry value can be used to turn on
+ real-time output of debug log entries to the Windows Debug
+ Output monitor interface. This data can be viewed with tools
+ such as Sysinternal's DbgView.
+
+Since 1.3.87: 1.4.0 rc1 released (17 Aug 2005)
+ * When the cache manager reports ALLBUSY or ALLOFFLINE for
+ a resource we should not be returning status codes such
+ as Network Busy or Remote Host Down because these errors
+ will imply that the AFS Client Service is Busy or Down
+ and that is simply not the case. Instead we will return
+ Bad Network Path as the path is temporarily not available.
+
+ Instead of returning Sharing Paused when there is a
+ timeout error, return Timeout. Once again, the AFS Client
+ Service is not paused.
+
+ * afscreds.exe would display an Obtain Creds dialog when
+ the expired credentials reminder was triggered even
+ if there was no network path to the KDC. This is prevented
+ by adding KDC probe logic to the reminder thread.
+
+ * afscreds.exe would display expired tokens no differently
+ than unexpired ones. This would make it difficult for the
+ user to distiguish when the tokens were expired. For the
+ English build added a new resource string "(expired) that
+ is displayed instead of the expiration time.
+
+Since 1.3.86:
+ * "fs wscell" when executed in freelance mode will return the
+ name of the cell configured in the registry. The root.afs
+ volume is not loaded from this cell, but it is used for the
+ default for aklog and integrated login.
+
+ * "fs mkmount, fs rmmount, symlink make, symlink remove" will
+ no longer work on \\AFS\all when freelance is being used
+ unless the user is a member of the "AFS Client Admins" Windows
+ Security group.
+
+ * some more checks performed during persistent cache validation.
+
+Since 1.3.85:
+ * Optimize calls to cm_CheckServer from cm_Analyze. Only check
+ down servers for the current cell not all cells.
+
+ * If the scache LRU list becomes corrupted, the AFS Client Service
+ might enter an infinite loop at startup. Detect the corruption
+ and discard the cache contents in this case.
+
+ * Fixed the Explorer Shell's remove mountpoint functionality.
+
+ * Fixed a deadlock caused by the holder of cm_aclLock attempting to
+ obtain a mutex lock on a cm_scache_t object whose lock is held by
+ a thread attempting to obtain the cm_aclLock.
+
+Since 1.3.84:
+ * Really fixed DNS AFSDB queries to ensure that "csail" cannot be
+ misinterpretted as "csail.mit.edu" when the resolver
+ is configured to append ".mit.edu" to failed DNS queries.
+
+ * Added a new registry key, "LogoffPreserveTokens" (see registry.txt),
+ that can be used to force the preservation of user tokens upon logout.
+
+ * Update the NSIS install scripts to use NSIS 2.07. This release adds
+ recommended installation categories: AFS Client, AFS Administrator,
+ AFS Server, AFS Development Kit. Each category includes a different
+ default subset of the OpenAFS components.
+
+ The OpenAFS logo is now associated with the NSIS uninstall entry
+ in the Add/Remove Programs control panel.
+
+ * The user name associated with AFS tokens when obtained with
+ integrated login, the afs systray tool, or aklog will always
+ include the full Kerberos 5 user principal name regardless of
+ whether or not the cell is local to the realm.
+
+ * Modify integrated login so that it does not enter an infinite
+ loop if the service is not set to auto start.
+
+ * Added asetkey.exe used to set a Kerberos 5 key for use by the
+ AFS server daemons
+
+ * Added uninstall.exe to Wix installation
+
+ * More modifications to algorithms used to wake sleeping threads.
+
+Since 1.3.83:
+
+ * Changes to the algorithms used to wake threads when they are
+ put to sleep because of conflicts over buffer operations.
+
+Since 1.3.82:
+ * The OpenAFS integrated logon obtains Kerberos 5 tickets as part of
+ the process of producing AFS tokens. The tokens are stored within
+ the AFS Client Service but the Kerberos 5 tickets have been discarded.
+ New functionality has been added to temporarily copy the tickets to
+ a file ccache during the short window between the NPLogonNotify and
+ WinLogon Logon Event. The Logon Event handler starts a process as
+ user, afscpcc.exe, that copies the tickets into the default ccache.
+ The file ccache is then destroyed by the event handler.
+
+ * During synchronization operations on stat cache entries, if threads
+ are forced to sleep it was possible that the threads would not be
+ woken under heavy load.
+
+ * Enforce the delete on close flag specified by the NTCreateX()
+ operation.
+
+ * A race condition in the rx library was fixed that resulted in
+ a deadlock in rx_NewCall when the RX_CONN_MAKECALL_WAITING flag
+ was cleared when threads were still waiting to use the
+ connection. Also, fixed a potential case in which the
+ connection could be destroyed while threads were waiting to use it.
+
+ * The DNLC freelist has been seen to become corrupted with still
+ active entries being stored on the freelist. Changes were made
+ to perform a better job of cleaning entries before placing them
+ onto the freelist; marking them with the correct magic value when
+ purging the list; and allowing the list to be purged on startup
+ if the cache validation fails.
+
+ * Windows Crash Reporting does not get triggered for afsd_service.exe
+ because it provides its own top level exception handler. This patch
+ places an explicit call to ReportCrash() on platforms which support
+ it. (XP and above.)
+
+ If you configure Crash Reporting via AD Policy to capture crash
+ reports within the domain, then you will receive this output.
+
+ * Generate MiniDumps independent of the Windows Crash Reporting.
+
+ (a) If an exception occurs,a minidump will be generated at the path
+ %TEMP%\afsd.dmp. The type of minidump defaults to Normal but
+ can be set to any other type via use of the
+ registry.
+
+ [HKLM\SOFTWARE\OpenAFS\Client] MiniDumpType (DWORD)
+
+ (b) MiniDumps can be generated at any time using the "fs minidump"
+ command. This allows you to generate a minidump without
+ stopping the process or even requiring the use of a debugger
+ on the system.
+
+ * an RX connection which reports bad ticket now treats it the same way
+ the expired ticket is treated. The ticket is removed from the
+ connection and a new anonymous connection is established.
+
+ * fs memdump now requires that the caller be in the AFS Client Admins
+ group
+
+ * additional debugging information is provided in cm_Analyze when the
+ error code is ignored.
+
+ * Fix a regression introduced into the pioctl() client code which
+ will cause a crash in winlogon.exe, explorer.exe and fs.exe if
+ MIT KFW is not installed. (1.3.82a)
+
+ * Remove AFS Gateway option from OpenAFS Control Panel (1.3.82a)
+
Since 1.3.81:
+ * Fix a race condition in cm_EndCallbackGrantingCall() that
+ could leave 'nrevp' pointing to freed memory. In the process,
+ optimize the processing to ensure that the applications monitoring
+ the status of the stat cache entry are only notified at most
+ once.
+
+ * Conditionalize access to the Explorer Shell AFS->Mount Point
+ ->Remove menu item. Disable the item if the selected item(s)
+ are not mount points.
+
+ * Activate AFS RPC (RX) Free Packet Queues stored in Thread
+ Local Storage. This eliminates thread contention on the
+ global RX free packet queue. This should improve performance
+ on multi-CPU systems.
+
+ * Fix the IP address filtering code to properly load/unload
+ the IPHelper DLL so that Windows XP/2003 and beyond systems
+ do not have to manually probe the registry.
+
+ * CleanupACLEnt() was not being called consistently with
+ the cm_scache_t object referred to by the back pointer
+ mutex locked. This could in very rare conditions lead to
+ an invalid memory access.
+
* Added a script command to the msi installer "afs_replace"
which can be used to replace one version of OpenAFS with
another without requiring an uninstall and reinstall if