+Since 1.6.0002 (1.6.0b)
+
+ * Correct an error in mount point string construction
+ when the user provides a cell alias to "fs mkmount"
+ instead of the full cell name. Every mount point
+ string must end in a trailing dot.
+
+ * Major improvements to the Explorer Shell Extension.
+
+ * Addition of the AFS Redirector drivers and service
+ interface.
+
+Since 1.6.0001 (1.6.0a)
+
+ * Correct an error in CheckOfflineVolumeState processing
+
+ * Permit NPLogonNotify() to exit immediately if the
+ SetToken error is KTC_NOCM.
+
+Since 1.6.0000 (1.6.0)
+
+ * Avoid a cm_serverLock reference count leak.
+
+Since 1.5.9907 (1.6pre7)
+
+ * Add Shutdown message to the windows event log
+
+ * Check Offline Volume status according to the specified policy
+ not every time the daemon thread runs.
+
+ * if the directory object cannot be found in the tree, return
+ CM_ERROR_PATHNOTFOUND instead of crashing.
+
+ * avoid memoryt leak of cm_GetSpace() allocations
+
+ * improve afs/kfw error message output. Include PT and KTC
+ errors. Impacts afslogon.dll, afscreds.exe and afssrvadm.exe
+
+ * afslogon.dll NPNotifyLogon will now kick start the
+ afsd_service if it is not already in a pending start or
+ started state.
+
+ * properly construct the userrealm in the afskfw library.
+ do not include the '@' in the realm.
+
+ * fix the generation of HTML reference manual pages from
+ POD.
+
+ * No longer send release lock RPCs to a file server for
+ a deleted file. Each attempt will fail with a VNOVNODE
+ abort. Multiple aborts can result in the file server
+ throttling the client.
+
+ * cm_BkgDaemon should not perform the job of cm_SyncOp
+ which already properly serializes operations on the
+ a file.
+
+ * cm_BkgDaemon should not perform queued tasks on deleted
+ objects. Doing so is a waste of resources.
+
+ * Avoid rx nat pings prior to connection attachment.
+
+ * After directory enumeration completes move the directory
+ status object to the most recently used position to avoid
+ it being recycled when the directory contains more objects
+ that the status cache can hold.
+
+ * Reduce memory fragmentation caused by lock order validation
+ checks.
+
+ * When a status object is deleted, move its object to the
+ least recently used position in the queue to promote
+ recycling when the reference count drops to zero.
+
+ * Fix the osi_Log macros so they safe for use in if..else
+ statements by wrapping in do..while(0). Several logged
+ messages were wrong as a result and there may have been
+ other logic errors caused by mismatched if and else
+ statements when braces were not used in the code.
+
+ * Apply interlocked operations to all state and queue fields
+ in the cm_call, cm_volume, cm_scache, and cm_buf objects
+ in order to ensure that operations are atomic. State flag
+ bits were being lost on multi-processor systems under heavy
+ load.
+
+Since 1.5.9906 (1.6pre6)
+ * add support for detection of NTFS symlinks to
+ \\AFS using GetFileInformationByHandleEx which is
+ available on Vista, Server 2008 and beyond.
+
+ * improve thread safety of afs_shl_ext.dll
+
+ * MS11-043 adds response validation for SMB_COM_NEGOTIATE
+ messages received by the SMB Redirector. OpenAFS failed
+ to properly specify a Challenge and DomainName in the
+ response when the security mode is SMB_AUTH_NONE (or share
+ with password). This patchset corrects smb_ReceiveNegotiate()
+ so that it adheres to the protocol specification.
+
+ * smb_T2SearchDirSingle() must not fail directory search requests
+ for the _._AFS_IOCTL_._ file. Although this file does not actually
+ exist, it is successfully processed by CreateFile operations.
+ Therefore, an explicit search for it should return a valid answer.
+
+ * cm_SyncOp/cm_SyncOpDone is used to synchronize the RPC processing
+ to ensure that calls which are in conflict cannot occur at the
+ same time but also to ensure that the ordering of operations
+ is consistent. cm_MergeStatus() was in many cases executed after
+ cm_SyncOpDone() removed the synchronization barrier which in turn
+ permitted status information to be applied out of order. Side
+ effects could have included data loss due to client side file
+ truncation. More commonly two StoreData RPCs would have their
+ status information applied out of order forcing the cache manager
+ to invalidate all of the cached data for the file.
+
+ * cm_NewServer() can result in a call to cm_UpdateVolumeLocation()
+ if a server probe is performed. In order to avoid recursive
+ calls to cm_UpdateVolumeLocation() do not probe new servers from
+ within cm_UpdateVolumeLocation().
+
+ * Numerous Rx improvements.
+
+ * Fix out of order lock acquisition in smb_ReceiveV3LockingX()
+ which occurs if the lock acquisition fails.
+
+Since 1.5.9905 (1.6pre5)
+ * aklog supports dotted Kerberos v5 principal names.
+
+ * afskfw library always attempts afs/cell@USER-REALM
+
+ * afskfw library must test return code from
+ krb5_cc_start_seq_get() or will trigger a null
+ pointer exception when using Heimdal.
+
+ * lock protected fields must be 32-bit in order
+ to avoid memory overwrite races.
+
+Since 1.5.9904 (1.6pre4)
+ * Fix caching of non-existent volumes. The test to
+ trigger an immediate CM_ERROR_NOSUCHVOLUME in
+ cm_UpdateVolumeLocation() was backwards.
+
+ * Prevent the background daemon from checking the
+ status of non-existent volumes. cm_CheckOfflineVolumes()
+ should skip volume groups with the CM_VOLUMEFLAG_NOEXIST
+ flag set.
+
+ * The afskfw library should return an error immediately
+ if the krb5_32.dll library cannot be loaded. Affects
+ afslogon.dll and afscreds.exe.
+
+ * No longer depend on leashw32.dll in afskfw library.
+
+ * NPLogonNotify must provide the user password in all
+ calls to KFW_AFS_get_cred(). It cannot count on a
+ credential cache being preserved between calls. Permits
+ tokens to be acquired for all cells listed in the
+ TheseCells registry value for a domain.
+
+ * Improve the trace logging from NPLogonNotify().
+
+ * Avoid a race when writing the cm_scache_t mountPointString
+ when acquiring mount point or symlink target data via
+ cm_GetData(). The race could result in bogus target
+ data being cached.
+
+ * Permit the use of des-cbc-md5 and des-cbc-md4 enctypes
+ as DES keys in asetkey.exe.
+
+Since 1.5.9903 (1.6pre3)
+ * Fix automatic addition of Freelance cell mount points
+ broken in 1.5.9902.
+
+ * Avoid recursive offline volume checks which could cause
+ a crash due to stack exhaustion.
+
+Since 1.5.9902 (1.6pre2)
+ * rx calls issued on a busy call channel are now specially
+ handled and logged. All calls are automatically retried.
+
+ * The vos support for multi-homed servers was incorrectly
+ implemented. The changes have been reverted.
+
+ * Avoid wasting cm_buf_t objects and associated data buffers
+ for obtaining mountpoint and symlink target strings. Instead
+ read them directly into the cm_scache_t mountPointTarget
+ buffer.
+
+ * Optimize the evaluation of mountpoint and symlink targets
+ by skipping the FetchStatus and a full round-trip if
+ the cache manager does not have valid status information
+ for the object.
+
+ * Fix the abstraction of cm_FreelanceAddMount() by passing
+ in volume names that do not include the trailing dot.
+
+Since 1.5.78
+ [there was no 1.6pre1 for Windows]
+
+ * vos commands now manipulate servers by UUID and can
+ recognize multi-homed servers.
+
+ * afs_config will not longer set the Tray Icon State
+ in the registry if the checkbox is not present in
+ the dialog. [RT 128591]
+
+ * Heimdal's roken utility library has been added
+ as \Program Files\Common\afsroken.dll
+
+ * When probing servers to determine if they are up or down
+ no longer issue an RXAFS_GetTime RPC to servers that indicated
+ that they do not understand the RXAFS_GetCapabilities RPC.
+ Since they responded it is known that they are up.
+
+ * AFS Explorer Shell Extension now works from folder
+ backgrounds. Overlays for mount points and symlinks
+ are present in the dll, but are not registered at present
+ by the installers.
+
+ * Do not use RankServerInterval registry value as the value for
+ PerformanceTuningInterval.
+
+ * CellServDB updated to 13 Dec 2010 release from grand.central.org
+
+ * Add "fs chmod" command and display current mode as part
+ of "fs examine" output.
+
+ * When the data version of a mountpoint or symlink changes,
+ the target string in the cm_scache_t object must be cleared.
+ Otherwise, the new target will not be queried.
+
+ * "fs checkservers" now includes vldb servers in the output
+ and only lists multi-homed servers once. A multi-homed
+ server that has at least one up interface is no longer
+ considered to be down.
+
+ * When asynchronously storing dirty data buffers to the
+ file server ensure that (a) the cm_scache_t object and
+ the cm_buf_t object are for the same File ID so that
+ locking and signalling work properly; and (b) if the
+ FID no longer exists on the file server, do not panic,
+ just discard the buffer.
+
+ * When processing VNOVOL, VMOVED and VOFFLINE errors perform
+ server comparisons by UUID or address and not simply by
+ cm_server_t pointer. Otherwise, server failover may not
+ succeed.
+
+ * Do not preserve status information for cm_scache_t objects
+ when the issuing server is multi-homed.
+
+ * Giving up all callbacks when shutting down or suspending
+ the machine is now significantly faster due to the use
+ of an rx_multi implementation. (This functionality is
+ still off by default and must be activated by a registry
+ value.)
+
+ * Race conditions were possible when updating the state
+ of the cm_volume_t flags and when moving the volumes
+ within the least recently used list.
+
+ * Ensure that the lanahelper library does not perform a
+ NCBRESET of each lan adapter when enumerating the
+ current network bindings. Correcting this permits OpenAFS
+ to work on Windows 7 when the network adapter settings
+ change.
+
+ * Fix creation of mount points and symlinks as \\AFS\xxxx
+
+
+Since 1.5.77
+ * Reimplement FetchData and StoreData operations to make
+ use of rx_Writev and rx_Readv which is faster than than
+ multiple calls to rx_Write and rx_Read. Throughput
+ improvements of up to 20% are possible.
+
+ * Many improvements to the rx rpc stack:
+
+ - RTT measurements
+
+ - Fast recovery is not triggered by packet resend timeouts
+
+ - Socket errors are now detected and reported
+
+ - avoid repetitive memory allocations
+
+ - avoid calling gettimeofday() for every packet
+
+ - reduced dependency on the call->lock
+
+ - When a call receive is completed, ack all of the packets
+ immediately. Do not wait for the first response packet
+ to be sent.
+
+ - Do not hold the call->lock during rx_Write* and rx_Read*
+ operations when the call fields in use can only be accessed
+ by the application thread.
+
+ - Reduce the default window size from 128 back to 32 because
+ the current overhead from walking packet queues in the rx
+ listener thread significantly hampers the ability to
+ process incoming packets from the network.
+
+ - Only backoff the peer timeout once for a series of naks.
+
+ - Release builds are lean and mean. All debugging and
+ packet tracking code is disabled.
+
+ * Version number is logged to the Windows Application Event
+ Log as part of the start pending message.
+
+ * MSI installers now backup and restore configuration
+ data during upgrades.
+
+ * Rx pmtu discovery has been disabled by default. Use
+ HKLM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters
+ RxPMTUDiscovery "DWORD"
+ value to re-activate.
+
+ * cm_BkgDaemon event evaluation has been optimized to avoid
+ unnecessary overhead.
+
+ * If a volume is known to be readonly, then locally fail any
+ change request without sending it to the file server. This
+ avoids triggering the file server's abort threshold.
+
+ * Do not leak cm_volume_t objects from the volume LRU queue.
+
+ * Ensure that cm_NameI errors are acted upon promptly.
+ There are many cases in the SMB server where an error from cm_NameI()
+ was either ignored or not acted upon until several other operations
+ are performed that could result in the same error being repeated.
+ This is a mistake which did not have negative side effects until
+ additional checks for callback status were added recently.
+
+ At present, if a CM_ERROR_ACCESS error is returned and ignored,
+ subsequent attempts to operate on the same cm_scache_t will result
+ in additional queries to the file server that will also end in an
+ abort response. This can trigger the file server to delay responses
+ to the client.
+
+ * Fix fs mount point and symlink create operations which were
+ failing due to improper directory separator termination.
+
+ * RXAFS_GetVolumeStatus can return VNOVOL, VMOVED, etc. In
+ order to process them and update volume state a fid must
+ be passed to cm_Analyze(). Use the volume root fid.
+
+ * Negative caching for volume lookups that fail with either
+ VL_NOENT or VL_BADNAME. The expiration time is five minutes.
+ This prevents volume lookup storms.
+
+ * Provide each volume lookup its own two hour lifetime instead
+ of reseting all volume location information every two hours.
+ This prevents the first smb path evaluation after the volume
+ location data has been discarded from potentially causing an
+ smb client timeout.
+
Since 1.5.76
* When the SYSTEM account is in use, the SMB connection is
not always established as S-1-5-18. Sometimes it uses an