Add more 'fall through' switch comments
[openafs.git] / NEWS
1                        User-Visible OpenAFS Changes
2
3 OpenAFS 1.9.0
4
5   All platforms
6
7     Introduce the rxgk Rx security class, initially limited to server-to-server
8     traffic and local keys (gerrit topic: rxgk-phase1).
9
10     Add options to the vos and pts commands for server-to-server rxgk support.
11
12     Add support to add and delete rxgk keys with asetkey.  Add support to
13     generate random keys with asetkey, which can be useful to create certain
14     types of rxgk keys.
15
16     Raise implementation-defined anti-DoS length limits for prdb-related XDR
17     array types, which were being reached at some sites (13838).
18
19     Bring "-setpag" functionality in klog to parity with aklog (14146).
20
21     Fix potential Rx hang when an incoming call must wait (14158).
22
23     Do not leave empty directories behind in the file server vice partition
24     when running the "vos zap -force" command (12879, 12839).
25
26     Make non-verbose "vos remsite" output output more readable (14127).
27
28     Display the usage of simple commands (commands without subcommands) when run
29     only with the -help option (10983).
30
31     Replace SOURCE-MAP with a README.md (14003).
32
33     Remove unused definition of LINUX_PKGREL from configure.ac (14117).
34
35     Improve logging and diagnostic messages:
36       * Add a warning message to vos when performing an incremental volume
37         restore over an existing volume which is newer than the dump
38         volume (13251)
39       * Log the binding address and port during startup in the cache manager and
40         all of the server processes (13272)
41       * Improve volume server logging to provide better information during
42         volume restore failures (13252)
43       * Improved cache manager syslog tracing (11858)
44       * Improved database server logging to log important messages at the
45         default logging level, log information during database synchronizations,
46         and log diagnostic messages during recovery aborts (12617, 13079, 12618)
47       * Set a thread name for rx listener threads (13600)
48       * Avoid truncating authentication information in vlserver log
49         messages (13466)
50       * Log when ubik recovery aborts a running remote transaction (13862).
51
52     Fix warnings issued by static code analyzers:
53       * Fix possible undefined variable in disconnected mode (13207)
54       * Remove redundant conditionals (13158, 13157)
55       * Exit if out of memory while attempting to format command help
56         messages (13335)
57       * Fix possible undefined variable when reading old vldb formats (13755)
58
59     Assorted memory-handling fixes (13461, 12293, 13355, 13395, 13396, 13161,
60     13659, 13714, 13715, 13760, 13716, 13761).
61
62     Fix many (but not all) of the new warnings issued by recent versions of
63     gcc and clang (12987..12989, 13010, 13287, 13462..13464, 13467..13468,
64     13470..13476, 13494, 13660..13664, 13684, 13726, 13754, 14049, 14092,
65     14106).
66
67     Added unit tests for functions mapping vide partition to id (13176).
68
69     Fix issues resulting in parallel "make install" to fail (13786, 14137).
70
71     Updated libauth test program (13394).
72
73     General code cleanup; remove unused code or obsolete code, old comments,
74     or refactor for clarity
75     (12988, 13204, 13209, 13210, 13213, 13226, 13227, 13260, 13271, 13277,
76     13309, 13310, 13324, 13325, 13339, 13345, 13346, 13351, 13361, 13362, 13363,
77     13390, 13397, 13408, 13414, 13458, 13490, 13500, 13509, 13514, 13557, 13640,
78     13655, 13282, 13683).
79
80     Build system clean up and fixes
81     (12956, 12961, 12962, 12963, 12992, 12993, 12994, 13237, 13275, 13338,
82     13357, 13360, 13387, 13419, 13594, 13652).
83
84   All server platforms
85
86     Improve database server logging by logging messages when and why a server
87     is marked as down (12616).
88
89     Log a warning message when starting server processes with no encryption
90     keys available (13911).
91
92     Remove redundant lseek system calls and use positional I/O in the database
93     servers to improve performance (12271, 12272).
94
95     Fix an edge case where writes were errneously allowed on readonly
96     fileservers (13934).
97
98     Add an option to allow members of system:administrators to perform
99     write operations on otherwise readonly fileservers (13707).
100
101     Allow "vos rename" to be re-run to finish a previously interrupted
102     volume rename operation (13720).
103
104     Take volumes offline during convertROtoRW operations, since volume access
105     during the conversion can leave it in an inconsistent state (14066).
106
107     Do not overwrite the errno variable when logging certain database sendfile
108     errors (13263).
109
110     Code migration to POSIX Threads (pthreads) from LWP.
111       * Convert upserver and upclient to pthreads (12754)
112       * Convert xstat libraries and related utilities to pthreads (12745, 12746,
113         12747, 12753, 13454, 13455)
114
115   All client platforms
116
117     Attempt to detect and report some common types of cache corruption
118     (13436, 13747, 13969, 14002).
119
120     Require opt-in to use the historical/deprecated single-DES krb5
121     encryption types, which are being removed from krb5 distributions (13689).
122
123     Fix incorrect informational messages when the AFSCELL environment
124     variable is set (13371).
125
126     Fix reading entries of historic vldb formats (13465).
127
128   Linux
129
130     Be more careful about overriding the current credentials for operations
131     on cache files, preventing spurious permission errors when systems like
132     AppArmor and SELinux are in use (13751, 14098).
133
134     Avoid panics from procfs when the kernel module is loaded but afsd is
135     not running (14093).
136
137     Improve ppc64le support (13980, 14046).
138
139   MacOS
140
141     Simplify background-move return-code processing (13280).
142
143     Support macOS Catalina (13935, 13936, 13668..13671, 13928, 14062).
144
145   Solaris
146
147     Remove references to (unspported) SunOS 4 (13506).
148
149     Build system fixes for parallel make on Solaris.
150
151     Support function attributes when building with recent versions of Solaris
152     compilers.
153
154     Fix many (but not all) of the compiler warnings when building on the Solaris
155     platform.
156
157     Add autoconf support for Studio 12.6 tools (13867).
158
159   FreeBSD
160
161     General improvements to VFS compliance.
162
163     Create destination kernel module directory when installing on
164     FreeBSD (13653, 13690)).
165
166     Add param.h files and sysnames for FreeBSD 11.2 (13534) and 11.3 (13792).
167
168     Fix fcntl-style locks by adapting to quirky historical behavior (12579).
169
170     Support kernels that use VIMAGE support at runtime, not just at
171     build-time (12580).
172
173     Change LWP stack strategy to avoid SIGBUS errors (13691).
174
175     Skip SIGBUS test (for reasons unrelated to the previous) (14145).
176
177
178 OpenAFS 1.8.5
179
180 All platforms
181
182     * Fix OPENAFS-SA-2019-001: information leakage in failed RPC output
183       Generated RPC handler routines ran output variables through XDR encoding
184       even when the call had failed and would shortly be aborted (and for
185       which uninitialized output variables is common); any complete packets
186       assembled in the process would be sent to the peer, leaking the contents
187       of the uninitialized memory in question.
188
189     * Fix OPENAFS-SA-2019-002: information leakage from uninitialized scalars
190       Generated RPC handler routines did not initialize output variables of
191       scalar (fixed-length) type, since they did not require dedicated logic to
192       free.  Such variables allocated on the stack could remain uninitialized
193       in some cases (including those affected by OPENAFS-SA-2019-001), and the
194       contents of uninitialized memory would be returned to the peer.
195
196 All server platforms
197
198     * Fix OPENAFS-SA-2019-003: fix crash in database servers
199       The ubik debugging RPCs prioritize being fast and non-disruptive to
200       database operations over strict correctness, and do not adhere to the
201       usual locking protocol for data access.  A data race could cause a NULL
202       dereference if the second memory load was not optimized out by the
203       compiler.
204
205 OpenAFS 1.8.4
206
207   All platforms
208
209     Build system updates to remove obsolete autoconf macros and remove missing
210     script warning during builds (13480, 13481, 13482, 13483, 13484, 13486,
211     13789, 13790).
212
213     Build system update to fix a conditional check in the pthread.m4 autoconf
214     file (13595)
215
216     Build system update to create the man3 subdirectory, fixing a
217     reported build failure (13535).
218
219     Remove the last reference to src/mcas in the documentation (13558).
220
221   All server platforms
222
223     Fix fileserver's parsing of the options -vlruthresh, -vlruinterval,
224     -vlrumax and -novbc (13680).
225
226     Fixes to make ptserver's behaviour when run in restricted mode consistent
227     with the documentation: Non-members of the system:administrators group
228     are no longer allowed to issue the adduser, setfields and delete pts
229     commands, and all members of system:administrators are now allowed to
230     issue pts commands in this mode, not just the admin principal (13686..88).
231
232   All client platforms
233
234     Fix missing Rx call clean-up after failing to read dcaches from a file
235     server (13511).
236
237     Fix an Rx call leak for calls aborted by a connection abort after the call
238     was initialized but before use (13517).
239
240     Remove the obsolete afs_xosi lock to remove unnecessary serialization of
241     VOP_GETATTR calls. This can lead to improved performance under heavy
242     workloads (13529).
243
244     Increase the size of the Directory Name Lookup Cache (DNLC) to improve
245     cache performance (13559).
246
247     Fix getting tokens for cells with a three character name (13679).
248
249     Avoid a misleading message about the cell being used when aklog is run
250     with the -cell parameter but the AFSCELL environment variable is set to
251     a different cell (13676).
252
253     Build system update to honor the CFLAGS environment variable when building
254     libuafs (13544).
255
256   Linux
257
258     Support for mainline kernels up to 5.3 (13787, 13789).
259
260     More fixes for improper use of ENOENT fixes to avoid incorrect use of linux
261     negative dentry cache, which can lead to false ENOENT errors (13542, 13543,
262     13590, 13692) (RT #134904).
263
264     Return errors instead of returning incomplete directory listings when the
265     directory objects are incomplete in the cache (13591).
266
267     Add ppc64le_linux26 sysname for the ppc64le architecture (13636, 13637,
268     13589).
269
270     Fix configure check for a kernel time function in order to build on
271     Linux 5.0 (13523).
272
273     RPM packaging update for RHEL8 adding a build requirement to ensure the
274     kernel module can be built from the SRPM (13563) (RT #134900).
275
276     On systemd based RHEL/Fedora systems, start the client after dkms startup
277     is finished if the latter is installed and enabled, to avoid attempting
278     starts without the kernel module being available yet (13674) (RT #134974).
279
280   MacOS
281
282     Build system updates for MacOS (13584).
283
284   Solaris
285
286     Add CTF debugging records to userspace objects to improve debugging
287     of servers (13487).
288
289     Convert the cache manager vnodes to be non-embebbed on Solaris 11 in order
290     to make the cache manager more resilient across Solaris 11 changes (13524,
291     13525, 13526, 13527, 13528).
292
293
294 OpenAFS 1.8.3
295
296   All platforms
297
298     * Improved diagnostics and error messages (13186 13411 13417)
299
300     * Avoid sending RX packets with random garbage in the userStatus field
301       (13332)
302
303     * Fixed detection of the RX initialization status (13416)
304
305     * Assorted fixes to avoid segmentation faults and other potential problems
306       by detecting internal errors rather than letting them go unnoticed
307       (13329 13372)
308
309   All server platforms
310
311     * Fixed a build problem accidentally introduced in release 1.8.2 (13328)
312
313     * Assorted efficiency improvements in the ubik implementation (13153 13218
314       13188 13353)
315
316     * Fixed locking around transaction list processing in volserver to avoid
317       segmentation faults and other potential problems (13336 13337)
318
319     * When the volserver attempts to remove a temporary volume after a
320       transaction, but the volume was already removed, e.g., by the salvager,
321       this is no longer treated as an error (13235)
322
323   All client platforms
324
325     * Update the CellServDB to the latest version from grand.central.org from
326       May 14th 2018 (13409)
327
328     * Avoid a panic during cache initialization when allocating the required
329       memory fails (13307)
330
331     * Add back the packet counters and timestamps to "vos status" output
332       which had been missing since release 1.8.0 (13421)
333
334     * Correctly handle errors encountered while reading data from the server
335       and writing it to the cache, e.g., due to a full cache partition (13443)
336
337     * Avoid a panic due to a recoverable error while flushing cache items
338       (13503)
339
340   Linux clients
341
342     * Support mainline kernels 4.20 and 5.0 and distribution kernels with
343       backports from those (13405 13406 13440 13441 13442)
344
345     * DKMS-related fixes in Red Hat packaging (13438 13479)
346
347   macOS
348
349     * Support building and packaging on macOS 10.14 "Mojave" (13412 13413)
350
351
352 OpenAFS 1.8.2
353
354   All platforms
355
356     * Fix OPENAFS-SA-2018-002: information leakage in RPC output variables
357       Various RPC routines did not always initialize all output fields,
358       exposing memory contents to network attackers.  The relevant RPCs include
359       an AFSCB_ RPC, so cache managers are affected as well as servers.
360
361   All server platforms
362
363     * Fix OPENAFS-SA-2018-003: denial of service due to excess resource consumption
364       Various RPCs were defined as allowing unbounded arrays as input, allowing
365       an unauthenticated attacker to cause excess memory allocation and tie up
366       network bandwidth by sending (or claiming to send) large input arrays.
367
368     * Fix OPENAFS-SA-2018-001: unauthenticated volume operations via butc
369       On systems using the in-tree backup system, the butc process was running
370       with administrative credentials, but accepted incoming RPCs over
371       unauthenticated connections; these incoming RPCs in turn triggered
372       outgoing RPCs using the administrative credentials.  Unauthenticated
373       attackers could construct volue dumps containing arbitrary contents
374       and cause these dumps to be restored and overwrite arbitrary volume
375       contents; afterward, the backup database could be restored to its
376       initial state, hiding evidence of the unauthorized changes.
377
378       Running butc with -localauth now requires authenticated incoming
379       connections, and the backup utility makes authenticated connections to
380       the butc.  Audit capabilities have been added to the butc RPC handlers.
381       Command-line arguments are provided to retain the (insecure) historical
382       behavior until all systems have been upgraded.
383
384 OpenAFS 1.8.1.1
385
386   Linux Clients
387
388     * Support for mainline kernel 4.18 and distribution kernels with backports
389       from it (13268)
390
391 OpenAFS 1.8.1
392
393   All Platforms
394
395     * Improve the usability and consistency of the public API: install missing
396       headers, and add additional symbols to the export list for shared libraries.
397
398     * Improved Rx abort generation: use the proper serial number for an existing
399       connection if possible, and 0 otherwise (to improve debugging).
400
401     * Assorted minor fixes in response to static analysis of the codebase.
402
403     * Fix memory-safety error in XDR decoding of enumerated types.
404
405   All Server Platforms
406
407     * Fix reference counting error that could cause an assertion failure
408       in some workloads.
409
410     * vldb_check -fix will no longer corrupt the vldb when multiple MH blocks are present.
411
412     * Assorted cleanups and efficiency improvements in the ubik implementation.
413
414     * Return a valid InlineBulkStatus response in error cases.
415
416     * The fileserver now rejects invalid partition names when attaching partitions.
417
418   All Client Platforms
419
420     * Fix volume callbacks (e.g., when running 'vos release').
421
422     * Treat failure to obtain a DSlot as a hard error for that cache partition,
423       avoiding a flood of "disk cache read error in CacheItems" log messages,
424       and reducing the chance of subsequent panic.
425
426     * Improve error messages for invalid values with -volume-ttl.
427
428     * Remove useless error message:
429       "find_preferred_connection: no connection and !create".
430
431     * Avoid passing NULL to a kernel memory deallocator, which is not guaranteed
432       to be safe on all systems.
433
434   Linux
435
436     * Add support for 64-bit ARM clients ("arm64").
437
438     * Fix panic when cache bypass is enabled.
439
440     * Improve cache manager behavior when unable to open cache files.
441
442     * Improvements to the RPM packaging.
443
444     * Detect out-of-memory when using kernel pages for writing.
445
446   Solaris
447
448     * Fix various issues in the build process for recent Solaris versions.
449
450   MacOS
451
452     * Fix clients on OS X 10.13.
453
454   FreeBSD / NetBSD / OpenBSD
455
456     * Fix panic triggered during periodic cleanup operations and shutdown.
457
458 OpenAFS 1.8.0
459
460   All Platforms
461
462     * Substantial code quality improvements, largely spotted by Coverity and
463       clang's static analysis.
464       - Add new library for platform independent functions (opr).
465       - Remove arbitrary path name length limits.
466       - Convert to Heimdal's roken library for reliability.
467       - Avoid garbage in allocated buffers (calloc).
468       - Modernize signal handling in pthreaded server processes (softsig).
469       - Improve code comments and additional Doxygen style comments.
470       - Reduce compiler warnings, dead code, unused variables, and
471         undefined behavior.
472       - Fix bugs found by static code analyzer (clang-analyzer).
473       - Improved unit test coverage.
474       - Make VLDB flag definitions consistent.
475       - Improve use of run-time assertions and add static assertions.
476       - Add compiler attributes to assist static analyzers.
477       - Clean up include headers in the entire tree.
478       - Improve command-line handling library (libcmd).
479       - Replace hash functions with Jenkin's hash function for faster
480         and more evenly distributed lookups.
481       - Provide a red-black tree data structure to enable algorithmic speedups.
482       - Convert backup and salvage servers to the common logging API (libutil).
483       - Improve volume id data type consistency (VolumeId).
484       - Import APIs for kerberos-style profile configuration support.
485       - Add new APIs to support UserList identities.
486       - Add new APIs to support tabular output from command-line utilities.
487       - Convert vnode macros to inline-functions.
488
489     * Improved support for non-DES encryption types:
490       - Convert to Heimdal's hcrypto library to support RFC 3961.
491       - Add extended key file format replacing rxkad.keytab, and
492         new key management APIs.
493       - Add support for extended key types to asetkey.
494       - Add akeyconvert to assist in upgrading to OpenAFS 1.8.x by converting an
495         existing rxkad.keytab file to an extended key file.
496       - Do not install the kaserver and related utilities by default to
497         discourage the use of these DES-dependent components.
498       - Remove obsolete klogin and klogin.krb programs.
499       - Add new token APIs to support new rx security classes.
500
501     * Migrate from LWP to POSIX threads (pthreads):
502       - Convert the ptserver and vlserver from LWP to pthreads.
503       - Remove LWP version of the file server binary.
504       - Convert afsd, aklog, asetkey, klog.krb5, pts, udebug, and vos, from LWP
505         to pthreads.
506
507     * Improvements to Rx:
508       - Restructure the Rx API to privatize the implementation.
509       - Convert rx events to a red-black tree data structure to improve
510         performance.
511       - Convert from mutexes to atomic operations for counters to reduce lock
512         contention.
513       - Provide per-opcode Rx statistics.
514       - Add an rx_opaque data type to support non-DES encryption types
515         and general code cleanup.
516       - Wake up the application thread after 'twind' is updated to avoid 100ms
517         transmit delays when the receive window transitions from closed to
518         open.
519       - Fix for OPENAFS-SA-2017-001: sanity-check peer transport parmeters
520         received in ack trailers
521
522     * Libraries (both internal and installed) are built using libtool, including
523       libuafs. The resulting shared libraries for libafsrpc and libafsauthent
524       should be more usable than previously.
525
526     * Improvements to the build system:
527       - Convert to libtool to build shared libraries.
528       - Clean up and improve the build system.
529       - Support out of tree builds.
530       - Add a makefile target to generate Doxygen source code documentation.
531       - Link the Java API for OpenAFS with libuafs.a and remove the
532         libjuafs.a library.
533       - Always build the rxperf tool.
534       - Fix man-page generation by make after ./regen.sh -q
535       - Support the SOURCE_DATE_EPOCH environment variable to improve build
536         reproducibility.
537       - Modernize language specific SWIG typemaps for libuafs Perl bindings.
538       - Refactor acinclude.m4 into a set of smaller m4 files (12876, 12877, 12878)
539
540     * Improvements to documentation:
541       - Document the new KeyFileExt file.
542       - Reorganized the README files.
543       - Improvements and fixes to documentation generation.
544       - Add experimental epub and mobi support
545       - Remove obsolete LWP information from the file server documentation.
546       - Update and reorganize the Quick Start Guide.
547       - Update the Admin Guide.
548       - Remove AIX, HP-UX, and IRIX information from the Quick Start Guide.
549       - Document the vldb and prdb (ubik) file formats.
550       - Add PtLog man page.
551       - Corrections and clarifications to man pages.
552       - Add ubik threading analysis doc.
553       - Normalize the location of text documents in the source tree.
554
555     * Improvements for troublshooting, debugging, and testing:
556       - Log more details on volume-server-to-fileserver communication errors
557         when possible.
558       - Set thread names in pthreaded servers on platforms which support
559         thread names.
560       - Add dynroot lock tracking to cmdebug
561       - Fix tracking of an fstrace call site in the cache manager background
562         process.
563       - Add the afsload tool to simulate multiple cache managers for file server
564         load testing.
565       - Add run-time checks for refcount imbalances in the cache manager.
566       - Fix missing newlines in afsd -debug output.
567
568     * Developer tool improvements:
569       - Improvements and fixes for rxgen (used to generate Rx RPC bindings).
570       - Add tool for man page verification of command options.
571       - Add tool to find Unix cache manager lock identification numbers.
572       - Add an option for pretty build output.
573
574     * RPM packaging updates:
575       - Update the spec file to keep up with accumulated changes.
576       - Move the klog.krb5 man page to the openafs-krb5 sub-package.
577       - Remove stray man pages. (12870, 12871)
578       - Prevent double-starting client on RHEL7
579       - Convert rpm spec file from deprecated 'make dest' to 'make install'.
580       - Fix rpmbuild command line option default handling.
581       - Support older versions of rpmbuild which do not support the
582         rpmbuild %exclude directive. (12873)
583       - Move the legacy kaserver and related programs to separate sub-packages,
584         which are only built when rpmbuild is given the '--with kauth' option
585         (12600, 12872)
586       - Package the libuafs perl bindings (12921)
587
588     * Add a new protection error code (PRNAMETOOLONG) instead of silently
589       truncating names which exceed the maximum name length (PR_MAXNAMELEN).
590
591     * Add an implementation limit (50000) on the number of names/ids which can
592       be transmitted by unauthenticated clients to the ptserver, avoiding
593       excessive resource consumption from unauthenticated requests.
594
595     * Add the -config option to vos, pts, and aklog to specify the path to the
596       cell configuration files.
597
598     * Add more details in vos release -verbose output.
599
600     * Add the cacheout -encrypt option to encrypt communication between the
601       cacheout client and the fileserver.
602
603     * Add the command line options to the afsio program to enable encryption of
604       traffic between afsio and the fileserver (-clear, -crypt).
605
606     * Add the vos release -force-reclone option to force recloning the volume to
607       be released without forcing a full volume dump being transmitted to all
608       remote sites.
609
610     * Fix vos to avoid writing loopback addresses into the VLDB in
611       certain cases.
612
613     * Print bos and pts error messages to standard error instead of
614       standard out.
615
616     * Improve formatting of the -help output of all commands.
617
618     * Change -n to -dryrun in all backup subcommands.
619
620     * Change the backup deletedump -port command line option to -portoffset.
621
622     * Add user and build host in the version string returned by
623       rxdebug -version.
624
625     * Support recent versions of gcc (7.2.1) (12897)
626
627   All Server Platforms
628
629     * Ubik servers using pthreads are now available and are used by default
630
631     * As part of improving Ubik reliability in certain edge cases, an extra
632       election cycle (about 60 seconds) may be needed before writes are
633       permitted.  This is a conservative change that may be removed in
634       the future.
635
636     * Avoid continually retransmitting the ubik database to remote sites when
637       a write transaction occurs as remote sites are attempting to rejoin the
638       ubik cluster. (12896)
639
640     * Ensure the ubik database version number is updated on remote sites at the
641       point the database is transferred to remote sites instead of waiting for
642       the next ubik beacon. This avoids write transaction failures during the
643       window between the database transfer and the next ubik beacon (12885).
644
645     * Remove periodic background fsync by the fileserver (ihandle fsync thread).
646
647     * Fix potential file handle leak in the file server ihandle caching layer.
648
649     * Disable the so-called "hot threads" feature in the file server. The hot
650       threads feature was intended as an optimization for dispatching incoming
651       calls to the current listener thread, but has been reported to incur a
652       performance penalty on modern multi-core systems.
653
654     * Do not permit creation of users with id of ANONYMOUSID.
655
656     * Do not save/restore host states in the fsstate.dat file for hosts which
657       are in the process of retrieving CPS information from the ptserver when
658       the fileserver is being shutdown. This fixes a bug in which the fileserver
659       will incorrectly block all threads following a restart.
660
661     * Add the ptserver -restrict_anonymous option to inhibit exposure of user
662       names from the ptserver.
663
664     * Do not truncate server log files by default when server processes
665       are started.  The -transarc-logs option provides backward compatibility
666       with IBM AFS log handling on server startup. Log messages may be lost
667       in back-to- back restarts when a server is running in this mode.
668
669     * Reopen server logs on SIGUSR1. This may be used by third-party log
670       rotation tools, such as logrotate, to reopen the log file handles after
671       log files have been renamed.
672
673     * Fix various bugs when logging with -mrafslogs enabled.
674
675     * Dynamically reload the kerberos realm to AFS cell mapping (krb.conf) and
676       exclusions for mapping kerberos principals to AFS identities (krb.excl)
677       configuration when the CellServDB cell configuration file is touched.
678       Previously, a restart of the file server was required after updating the
679       kerberos mapping configuration files.
680
681     * Add a command line option (-restricted_query) to the vlserver and
682       volserver to restrict information queries about volumes to a specific
683       group of users.
684
685     * Add a command line option to the server programs to specify an alternate
686       fully qualified log file name (-logfile).
687
688     * Add a command line option (-config) to the server programs to specify
689       an alternate path to the server configuration.
690
691     * Add a command line option to the ptserver and vlserver to specify an
692       alternate path to the database data files.
693
694     * Add a command line option to the volume server to enable encryption of
695       volume-server-to-volume-server-traffic (-s2scrypt).
696
697     * Increase the maximum number of LWP threads allowed for the ptserver and
698       vlserver from 16 to 64 (-lwp).
699
700     * Remove an unused file server command line option (-k).
701
702     * Fix an incorrect assertion in Demand Attach File Server which could cause
703       the file server process to abort in certain rare conditions.
704
705     * Deprecate the -bitmap-later configure option for non-Demand-Attach File
706       Servers (DAFS).
707
708     * Add -vhashsize support to non-Demand-Attach File Servers (DAFS).
709
710     * Add support for subnet ranges in the NetInfo and NetRestrict
711       configuration files.
712
713     * Add the GetXStats RPC to the audit log.
714
715     * Fix directory creation by bosserver when built for non-Transarc paths.
716
717     * Fix incomplete list of server addresses retreived by vos listaddr when the
718       vldb contains unreferenced multi-homed server entries.
719
720     * Remove obsolete bos blockscanner and unblockscanner commands that
721       were only needed for the removed MR-AFS functionality.
722
723     * Remove obsolete bos salvage options that were only used by the
724       removed MR-AFS functionality..
725
726     * Remove calls to the deprecated sbrk() function.
727
728     * Add an experimental feature to database servers to support ubik reads
729       while write transactions are in progress, enabled at build time with the
730       --enable-ubik-read-while-write configure option. This feature is not
731       considered ready for production usage at this time.
732
733     * Avoid filling the FileLog with "Volume x offline: not in service" when
734       a volume is administratively taken offline with vos offline.
735
736     * Print an error message when bosserver is started with an unknown
737       command line option.
738
739     * Modify the volume updateDate when the volume is changed by a salvage.
740
741     * Volume usage statistics are now preserved during reclone and restore
742       operations by default, the behavior previously enabled by
743       the -preserve-vol-stats flag to the volserver.  The historical behavior
744       can be retained via the -clear-vol-stats argument.
745
746   All Client Platforms
747
748     * Use rxkad_crypt by default for connections to fileservers.  This matches
749       the existing behavior of the Windows client and has been applied by
750       the distribution packaging on many platforms already.
751
752     * Add support for relative ACL changes with fs setacl. If a single plus (+)
753       or minus (-) character is appended to the rights' letters argument, the
754       new rights are computed relatively to the existing ones.
755
756     * Remove afsd -settime and afsd -nosettime support.
757
758     * Add the afsd -inumcalc option to specify the method used to calculate
759       inode numbers presented by AFS.
760
761     * Add the afsd -volume-ttl option to specify set the maximum amount of time
762       information retrieved from the vlserver will be cached, regardless of
763       callback expiry times.
764
765     * Return EIO on internal errors instead of the misleading ENOENT.
766
767     * Log ICMP errors received, if any, for unreachable servers.
768
769     * Improve performance of clients with multiple PAGs for different cells.
770
771     * Fix race condition between changing and using user tokens among cache
772       manager threads.
773
774     * Fix fs sysname for users with UID 2748 and 2750 when not running
775       in -rmtsys mode.
776
777     * Add Perl bindings for the user-space cache manager library (libuafs).
778
779     * Fixes to the bypasscache feature.
780
781     * Fix fs getcacheparms miscounts.
782
783     * Remove the obsolete Netscape plugin.
784
785     * Fix building gtx when ncurses is linked against libtinfo.
786
787     * Update to the GCO CellServDB update from 14 March 2017.
788
789   Linux
790
791     * Remove Linux 2.2 and 2.4 support.
792
793     * Changes to avoid EIO errors with multiple processes doing intensive mmap
794       writing. (Drop PageReclaim AOP_WRITEPAGE_ACTIVATE.)
795
796     * Prevent fakestat data inconsistencies in certain cases (131855).
797
798     * Fix dentry leak which can cause a crash on shutdown.
799
800     * Fix improper use of ENOENT and avoid incorrect use of linux negative
801       dentry cache.
802
803     * Use a more correct (less aggressive) scheme to react to downward
804       pressure on cache usage, avoiding d_invalidate(), which can cause
805       getcwd() failures on RHEL 7.4.
806
807     * Apply a workaround to be compatible with RHEL 7.5's KABI preservation
808       strategy for reading directories.
809
810     * Improve error reporting when encountering corrupt directories.
811
812     * Improve rx error handling in the Linux cache manager.
813
814     * Rename kpasswd to kapasswd when packaging RPMs to avoid colliding with
815       Kerberos kpasswd.
816
817     * Do not use the obsolete --enable-largefile-fileservers configure option
818       when packaging RPMs.
819
820     * In Red Hat packaging, use a separate rpm for kmod debuginfo,
821       removing a needless tight version dependency on the userspace package.
822       (12822, 12875)
823
824     * Use the RemainAfterExit systemd feature to avoid premature exit
825       when -afsdb is not given, for RPM packages.
826
827     * Remove Debian packaging files from the OpenAFS source tree. Debian
828       packaging files are currently maintained in the downstream Debian
829       infrastructure.
830
831     * Add the sparc_linux26 sysname.
832
833     * Desupport 32-bit Linux kernels on s390/s390x.
834
835     * Fix Debian/Ubuntu build regression on kernel 3.16.39.
836
837     * Fix --enable-kernel-debug for linux 4.8+.
838
839     * Fix a hang encountered when accessing a previously removed
840       directory entry (12811).
841
842     * Support linux 4.10, 4.11, 4.12, 4.13, 4.14, 4.15
843
844   Solaris
845
846     * Remove support for all Solaris and SunOS platforms prior to Solaris 8.
847
848     * Build 64-bit binaries for Solaris x86 by default.
849
850     * Use one-group PAGs on Solaris 11, which is required for PAG support
851       on Solaris 11 since supplemental groups must be sorted starting with
852       Solaris 11.1.
853
854     * Update search paths for solaris cc for recent versions Solaris Studio.
855
856     * Modernize declaration of module dependences by converting from the
857       deprecated _depends_on symbol to ELF dependencies.
858
859     * Avoid BAD TRAP panic due to invalid opcodes on x86 with Studio 12.5.
860
861     * Add ctf debug records to Solaris kernel modules when debug builds
862       are enabled and the ctf tools are present (ctfconvert/ctfmerge).
863
864     * Save kernel module function arguments on x86 for debugging purposes.
865
866   MacOS
867
868     * Stop processing upcalls once rx shutdown starts.
869
870     * Enable atomics for the darwin kernel.
871
872     * Add a syscall to enable/disable bulkstat at run-time, which is
873       disabled by default.
874
875     * Fix path to binaries in the prefpane.
876
877     * Fix builds on MacOS 10.12 by building only the active architecture
878       by default.
879
880     * Support versions up through 10.13 (High Sierra) and APFS
881
882   FreeBSD
883
884     * Use the native kernel module build system instead of an ad hoc
885       replacement build system.
886
887     * Remove FreeBSD packaging files from the OpenAFS source tree. FreeBSD
888       packaging files are currently maintained in the downstream FreeBSD Ports
889       Collection.
890
891     * Stay up to date with new FreeBSD releases (through 10.3).
892
893     * Do not claim AFS_VM_RDWR_ENV
894
895     * Add sysnames and files for i386 and amd64 10.4, 11.1, and 12.0
896      (12-CURRENT, at present). (12887, 12888)
897
898     * Remove trailing semicolons to fix the build on FreeBSD (12899)
899
900   NetBSD
901
902     * Stay up to date with new NetBSD releases (through 7.x)
903
904     * Update to use cprng(9) as the randomness source on NetBSD 6.99/7.x.
905
906     * Build system updates for NetBDS 6.99.x
907
908     * Do not claim AFS_VM_RDWR_ENV
909
910   OpenBSD
911
912     * Stay up to date with new OpenBSD releases (through 4.7)
913
914     * Do not claim AFS_VM_RDWR_ENV
915
916   AIX
917
918     * Updates for AIX support.
919
920     * Fix build system for AIX exports.
921
922     * Add the uidpag and localuid runtime options to the aklog LAM plugin.
923       (These runtime options override the use of UID-based PAGs, which were
924       introduced to appease the CDE screensaver.)
925
926
927 OpenAFS 1.6.21
928
929   All platforms
930
931     * Avoid a possible 100ms transmit delay in the RX protocol when a peer's
932       receive window transitions from closed to open (12627)
933
934     * Documentation improvements (12476 12477 12559[RT #133339])
935
936   All server platforms
937
938     * When bosserver is started with an unknown option, print an error message
939       and exit with a non-zero value rather than failing silently (12631)
940
941   All DB server platforms
942
943     * Hold the DB lock while checking for an aborted write transaction (12516)
944
945   All file server platforms
946
947     * On demand attach fileservers, don't save or restore a client's host
948       state if CPS ("Current Protection Subdomain") recalculation for it is
949       in progress, to avoid fileserver thread exhaustion (12568)
950
951     * On demand attach fileservers, avoid flooding the log with error messages,
952       which could happen when the fileserver was restarted while a volume was
953       offline (12569)
954
955     * Update a volume's "Last Update" time when its content is modified by
956       the salvager, to make the change visible in the output of "vos examine"
957       and to backup services (12633)
958
959   All client platforms
960
961     * Corrected the DCentries bucket counts for very large and zero length
962       files in the output of "fs getcacheparms -excessive" (12604 12605)
963
964     * Fixed a bug that prevented users with GID 2748 and 2750 from executing
965       the "fs sysname" command on clients running afsd with -rmtsys (12607)
966
967     * Provide a new -inumcalc switch for afsd to allow enabling the alternative
968       MD5 method of inode number calculation, which was previously only
969       possible on Linux and through the sysctl interface (12608 12632)
970
971   Linux clients
972
973     * Support for mainline kernel 4.12 and distribution kernels with backports
974       from it (12624 12626)
975
976     * Re-added the improved algorithm for freeing unused vcaches to reduce
977       memory consumption first introduced with the 1.6.18 release, together
978       with a fix for the issue leading to its removal in 1.6.18.2 (12448..12451)
979
980   macOS clients
981
982     * Fixed a crash while stopping the client on macOS 10.12 "Sierra" (12602)
983
984
985 OpenAFS 1.6.20.2
986
987   All platforms
988
989     * Build fixes required by recent compilers or platforms (12514 12521 12534
990       12536 12538)
991
992     * Allow the bos server to start successfully in the presence of those, by
993       accepting a now checked return value indicating that the client ThisCell
994       and CellServDB already exist (12522)
995
996   Linux clients
997
998     * Support for mainline kernels 4.10 and - most likely - 4.11 and
999       distribution kernels with backports from them (12530 12588..12590 12598)
1000
1001     * Support for distribution kernels with partial backports from 4.9 (12535)
1002       (RT #134158)
1003
1004     * In Red Hat packaging, moved the klog.krb5 manual page into the krb5
1005       subpackage (12511)
1006
1007     * In Red Hat packaging, prevent systemd from double-starting the client
1008       (12587)
1009
1010     * Allow aklog to function on current S390/S390x (12499)
1011
1012   Solaris clients
1013
1014     * Make process authentication groups work on Solaris 11, now using a single
1015       group ID (12524..12527)
1016
1017     * Fix a BAD TRAP panic on Solaris 11 clients built with Studio 12.5 (12567)
1018
1019   macOS clients
1020
1021     * Fixed the preference pane for OS X 10.11 and later (12512)
1022
1023 OpenAFS 1.6.20.1
1024
1025   All platforms
1026
1027     * Build fixes required by recent compilers (12482..12484)
1028
1029   Linux clients
1030
1031     * Support for mainline kernel 4.9 and distribution kernels with
1032       backports from it (12478..12480)
1033
1034     * In Red Hat packaging, make systemd deal correctly with the client
1035       when no userland processes remain after starting it (12481)
1036       (RT #133482)
1037
1038   macOS
1039
1040     * Support for release 10.12 "Sierra" (12431 12432)
1041
1042     * Avoid a crash in the Mounts tab of the OpenAFS preference pane (12447)
1043
1044 OpenAFS 1.6.20 (Security Release)
1045
1046   All platforms
1047
1048     * Fix for OPENAFS-SA-2016-003: file and directory names leak due to
1049       reuse of directory objects without zeroing the contents
1050       (12461 12462 12463 12464 12465)
1051
1052 OpenAFS 1.6.19
1053
1054   All platforms
1055
1056     * Documentation improvements (12304)
1057     * Fixes for test failures (12396 12415)
1058
1059   All DB server platforms
1060
1061     * Avoid potentially writing to an out of date volume location or protection
1062       database, or losing a database write, which could happen in rare cases
1063       under special conditions during database leader election
1064       (12339 12389)
1065
1066   Solaris clients
1067
1068     * Allow the fsinfo::: DTrace provider to work with AFS files (12371)
1069
1070   Linux clients
1071
1072     * Don't commit more data to a file than was actually copied during writes,
1073       which could happen on architectures with a page size > 4 KiB (12413)
1074     * Fixed build on PPC64 with GCC 6.1 (12388) (RT #133407)
1075     * Fixed build on x86_64 with recent GCC (12365 12366)
1076
1077
1078 OpenAFS 1.6.18.3
1079
1080   Linux clients
1081
1082     * Support for mainline kernel 4.7 and distribution kernels with
1083       backports from it (12348)
1084
1085   Solaris clients
1086
1087     * Fixed memory mapped I/O on files >= 4 GiB (12349 12350)
1088
1089       Note that there is a suspicion that this might break the client
1090       on very old Solaris releases (2.6). If it does, the breakage should
1091       occur at build time.
1092
1093   OS X
1094
1095     * Added tooling to build a package for OS X 10.10 "Yosemite" and
1096       10.11 "El Capitan" (12335 12351)
1097
1098
1099 OpenAFS 1.6.18.2
1100
1101   Linux clients
1102
1103     * Support for mainline kernel 4.6 and distribution kernels with
1104       backports from it (12332)
1105
1106     * Switch back to the pre-1.6.18 algorithm for freeing unused vcaches.
1107       While the new algorithm is still believed to be correct, it turned
1108       out that at least on some kernels, including 4.5 and 4.6, the dentry
1109       for the current working directory may be erroneously invalidated.
1110       This could lead to errors like "Unable to read current working directory"
1111       when a directory wasn't accessed for a few minutes. (12323)
1112
1113     * Use a secure URL to retrieve the CellServDB in the script to create
1114       the Red Hat source package (12330)
1115
1116   FreeBSD
1117
1118     * Added sysname IDs for 10.2 and 10.3 to fix the build on those platforms
1119       (12322)
1120
1121
1122 OpenAFS 1.6.18.1
1123
1124   Linux clients
1125
1126     * Support for mainline kernel 4.5 and distribution kernels with
1127       backports from it (12300..12302)
1128
1129
1130 OpenAFS 1.6.18
1131
1132   All platforms
1133
1134     * Documentation improvements (12224 11675 11613 12197)
1135
1136     * Improved diagnostics and error messages (12129 12207 12185 12211 12113
1137       12215 12216)
1138
1139     * Check that CellServDB entries are valid IPv4 addresses, to avoid
1140       occasional hangs or potentially other erratic behaviour due to invalid
1141       entries (12210) (RT #131794)
1142
1143   All client platforms
1144
1145     * Gracefully handle cases where a client shutdown sequence is initiated
1146       while the client is already shutting down, rather than cause a panic
1147       (12179)
1148
1149     * Fixed several bugs that could cause erratic behaviour when the write
1150       offset into a file was more than 2 GiB beyond the file's current end
1151       on the server (12213 12214)
1152
1153   All server platforms
1154
1155     * Avoid a possible volserver crash during volume dump or restore due
1156       to invalid ACL entries (12127)
1157
1158     * Allow recovering from a DAFS fileserver operation which allocates a
1159       new vnode but fails to update the vnode index, rather than crashing the
1160       server (12209)
1161
1162     * Fixed a longstanding bug which could damage the volume location database
1163       when "vos changeaddr" was run with "-oldaddr" and "-newaddr" and the
1164       old address was present in a multi-homed entry (12089)
1165
1166   FreeBSD
1167
1168     * Added support for releases 10.2 and 10.3 (12232)
1169
1170   Linux clients
1171
1172     * Support for mainline kernel 4.4 and distribution kernels with
1173       backports from it, alas at a performance penalty (12226 12227 12228)
1174       (RT #132677 #132819)
1175
1176     * Avoid using excessive amounts of kernel memory for dynamically
1177       allocated vcaches, by improving the algorithm to free unused ones
1178       (12256 12257)
1179
1180     * In Red Hat packaging, make the init script use "ip" if available, with
1181       "ifconfig" as a fallback (12193)
1182
1183   OS X
1184
1185     * Basic support for release 10.11 "El Capitan" (12212)
1186
1187   IRIX clients
1188
1189     * Fixed kernel module builds with optimization (12198) (RT #131261)
1190
1191
1192 OpenAFS 1.6.17 (Security Release)
1193
1194   All server platforms
1195
1196     * Fix for OPENAFS-SA-2016-001: foreign users can create groups as
1197       if they were an administrator (RT #132822) (CVE-2016-2860)
1198
1199   All client platforms
1200
1201     * Fix for OPENAFS-SA-2016-002: information leakage from sending
1202       uninitialized memory over the network.  Multiple call sites
1203       were vulnerable, with potential for leaking both kernel and
1204       userland stack data (RT #132847)
1205
1206     * Update to the GCO CellServDB update from 01 January 2016 (12188)
1207
1208   Linux clients
1209
1210     * Fix a crash when the root volume is not found and dynroot is not
1211       in use, a regression introduced in 1.6.14.1 (12166)
1212
1213     * Avoid introducing a dependency on the kernel-devel package corresponding
1214       to the currently running system while building the srpm (12195)
1215
1216     * Create systemd unit files with mode 0644 instead of 0755
1217       (12196) (RT #132662)
1218
1219 OpenAFS 1.6.16
1220
1221   All platforms
1222
1223     * Documentation improvements (11932 12096 12100 12112 12120)
1224
1225     * Improved diagnostics and error messages (11586 11587)
1226
1227     * Distribute the contributor code of conduct with the stable release (12056)
1228
1229   All server platforms
1230
1231     * Create PID files in the right location when bosserver is started with
1232       the "-pidfiles" argument and transarc paths are not being used (12086)
1233
1234     * Several fixes regarding volume dump creation and restore (11433 11553
1235       11825 11826 12082)
1236
1237     * Avoid a reported bosserver crash, and potentially others, by replacing
1238       fixed size buffers with dynamically allocated ones in some user handling
1239       functions (11436) (RT #130719)
1240
1241     * Obey the "-toname" parameter in "vos clone" operations (11434)
1242
1243     * Avoid writing a loopback address into the server CellServDB - search
1244       for a non-loopback one, and fail if none is found (12083 12105)
1245
1246     * Rebuild the vldb free list with "vldb_check -fix" (12084)
1247
1248     * Fixed and improved the "check_sysid" utility (12090)
1249
1250     * Fixed and improved the "prdb_check" utility (12101..04)
1251
1252   All client platforms
1253
1254     * Avoid a potential denial of service issue, by fixing a bug in pioctl
1255       logic that allowed a local user to overrun a kernel buffer with a single
1256       NUL byte (commit 2ef86372) (RT #132256) (CVE-2015-8312)
1257
1258     * Refuse to change multi-homed server entries with "vos changeaddr",
1259       unless "-force" is given, to avoid corruption of those entries (12087)
1260
1261     * Provide a new vos subcommand "remaddrs" for removing server entries, to
1262       replace the slightly confusing "vos changeaddr -remove" (12092 12094)
1263
1264     * Make "fs flushall" actually invalidate all cached data (11894)
1265
1266     * Prevent spurious call aborts due to erroneous idle timeouts (11594)
1267
1268     * Provide a "--disable-gtx" configure switch to avoid building and
1269       installing libgtx and its header files as well as the depending
1270       "scout" and "afsmonitor" applications (12095)
1271
1272     * Fixed building the gtx applications against newer ncurses (12125)
1273
1274     * Allow pioctls to work in environments where the syscall emulation
1275       pseudo file is created in a read-only pseudo filesystem, like in
1276       containers under recent versions of docker (12124)
1277
1278   Linux clients
1279
1280     * In Red Hat packaging, avoid following a symbolic link when writing
1281       the client CellServDB, which could overwrite the server CellServDB,
1282       by removing an existing symlink before writing the file (12081)
1283
1284     * In Red Hat packaging, avoid a conflict of openafs-debuginfo with
1285       krb5-debuginfo by excluding our kpasswd executable from debuginfo
1286       processing (12128) (RT #131771)
1287
1288 OpenAFS 1.6.15 (Security Release)
1289
1290   All client and server platforms
1291
1292     * Fix for OPENAFS-SA-2015-007 "Tattletale"
1293
1294       When constructing an Rx acknowledgment (ACK) packet, Andrew-derived
1295       Rx implementations do not initialize three octets of data that are
1296       padding in the C language structure and were inadvertently included
1297       in the wire protocol (CVE-2015-7762).  Additionally, OpenAFS Rx in
1298       versions 1.5.75 through 1.5.78, 1.6.0 through 1.6.14, and 1.7.0
1299       through 1.7.32 include a variable-length padding at the end of the
1300       ACK packet, in an attempt to detect the path MTU, but only four octets
1301       of the additional padding are initialized (CVE-2015-7763).
1302
1303 OpenAFS 1.6.14.1
1304
1305   Linux clients
1306
1307     * Support kernels up to 4.2
1308
1309       Due to changes to internal data structures with this kernel release,
1310       the OpenAFS client can no longer reset the link count during path
1311       lookups. Since volume root directories must behave like symlinks
1312       instead of normal directories in order to satisfy Linux kernel
1313       invariants, looking up paths containing more than 40 mount points
1314       will fail with ELOOP on such kernels.
1315
1316 OpenAFS 1.6.14
1317
1318   All server platforms
1319
1320     * Prior to the OpenAFS security release 1.6.13, the Volume Location
1321       Server (vlserver) RPC VL_ListAttributesN2() supported wildcard volume
1322       name lookups via regular expression (regex) pattern matching. This
1323       support was completely disabled in 1.6.13 because it was judged to be
1324       a security risk due to buffer overruns in the implementation, as well
1325       as the possibility of denial of service attacks where certain regular
1326       expressions could cause excessive CPU usage in some regex
1327       implementations.
1328
1329       Unfortunately, after 1.6.13 was released, it was discovered that
1330       the native OpenAFS 'backup' system uses the VL_ListAttributesN2()
1331       regex support to evaluate configured volume sets. If you use the
1332       OpenAFS 'backup' system (or another backup system which relies on it,
1333       such as Tivoli Storage Manager (TSM, aka Tivoli ADSM)), and are using
1334       volume sets which require regular expressions for the volume name,
1335       then those volume sets cannot be resolved by OpenAFS 1.6.13. The next
1336       paragraph provides details on how to identify any affected volume sets.
1337
1338       OpenAFS backup volume sets may be described by fileserver, partition
1339       name, and volume name. The fileserver and partition specifications
1340       never require regular expression support. The volume name specification
1341       always requires regular expression support except for when specifying
1342       _all_ volumes via two special cases: the universal wildcard ".*", or "".
1343       For example, volume name "proj" or "*.backup" or "homevol.*" all
1344       require regex support - even if the specification contains no wildcard
1345       characters and/or exactly matches an existing volume name.
1346
1347       As a result of this issue, OpenAFS 1.6.14 replaces the 1.6.13 changes
1348       to VL_ListAttributesN2. 1.6.14 prevents the buffer overruns and
1349       reenables the regex support, but restricts it to OpenAFS super-users
1350       and -localauth only. This is sufficient to restore the OpenAFS 'backup'
1351       system's ability to work correctly with any previously supported volume
1352       set. The OpenAFS 'backup' commands are already documented to require
1353       super-user authorization, so this restriction is moot for the backup
1354       system.
1355
1356       There are no other direct consumers of the VL_ListAttributesN2() regex
1357       support in the OpenAFS tree. However, the VL_ListAttributesN2 RPC is
1358       publicly accessible and might be used by third party tools directly or
1359       indirectly via OpenAFS's libadmin. Any such tools that issue
1360       VL_ListAttributesN2 RPCs must now be executed using super-user or
1361       -localauth tokens.
1362
1363       None of the other security fixes in OpenAFS 1.6.13 are known to have
1364       any issues, and are still included unchanged in OpenAFS 1.6.14.
1365
1366       If there are any questions concerning the possible impact of OpenAFS
1367       1.6.13 or 1.6.14 at your site, please contact your OpenAFS support
1368       provider or the openafs-info@openafs.org mailing list for further
1369       assistance.
1370
1371 OpenAFS 1.6.13
1372
1373   All server platforms
1374
1375     * Fix for CVE-2015-3282: vos leaks stack data onto the wire in the
1376       clear when creating vldb entries
1377
1378     * Workaround for CVE-2015-3283: bos commands can be spoofed, including
1379       some which alter server state
1380
1381     * Disabled searching the VLDB by volume name regular expression to avoid
1382       possible buffer overruns in the volume location server
1383
1384   All client platforms
1385
1386     * Fix for CVE-2015-3284: pioctls leak kernel memory
1387
1388     * Fix for CVE-2015-3285: kernel pioctl support for OSD command passing
1389       can trigger a panic
1390
1391   Solaris clients
1392
1393     * Fix for CVE-2015-3286: Solaris grouplist modifications for PAGs can
1394       panic  or overwrite memory
1395
1396 OpenAFS 1.6.12
1397
1398   All server platforms
1399
1400     * Avoid database corruption if a database server is shut down and then
1401       brought up again quickly with an altered database (11773 11774)
1402       (RT #131997)
1403
1404   All client platforms
1405
1406     * Fixed a potential buffer overflow in aklog (11808)
1407
1408     * Avoid a bogus warning regarding the checkserver daemon, which could be
1409       logged during startup when the cache initialization was very fast (11680)
1410
1411     * Added documentation of the inaccuracy of the 'partition' field in
1412       'fs listquota' output for partitions larger than 2 TiB (11626)
1413
1414   Linux clients
1415
1416     * Support kernels up to 4.1 (11872 11873)
1417
1418     * Avoid spurious EIO errors when writing large chunks of data to
1419       mmapped files (11877)
1420
1421   OS X
1422
1423     * Build fixes required at least on OS X 10.10 Yosemite with the latest
1424       XCode (11859 11876 11842..11845 11863 11878 11879)
1425
1426 OpenAFS 1.6.11.1
1427
1428   Linux clients
1429
1430     * Support kernels up to 4.0 (11760 11761)
1431
1432   FreeBSD clients
1433
1434     * Fixed kernel module build on systems with an updated clang which no
1435       longer accepts the -mno-align-long-strings as a no-op (11809)
1436
1437 OpenAFS 1.6.11
1438
1439   All platforms
1440
1441     * Allow aklog to succeed creating native K5 tokens even when mapping
1442       the K5 principal to a K4 one fails (11538)
1443
1444     * Build fixes (11435 11636)
1445
1446   All client platforms
1447
1448     * Avoid a potential kernel panic due to connection reference overcounts
1449       (11645) (RT #131885)
1450
1451     * Avoid potential corruption of files written using memory mapped I/O
1452       when the file is larger than the cache (11656) (RT #131976)
1453
1454   Linux clients
1455
1456     * Support kernels at least up to 3.19 (11549 11550 11569 11570 11595
1457       11658..11662 11694 11752)
1458
1459       Note: By default this excludes kernels 3.17 to 3.17.2, which will leak
1460             an inode reference when an error occurs in d_splice_alias(). The
1461             module will build and work, but leak kernel memory, leading to
1462             performance degradation and eventually system failure due to
1463             memory exhaustion. Since it's impossible to detect this condition
1464             automatically, the switch --enable-linux-d_splice_alias-extra-iput
1465             must be passed to configure when building the module for those
1466             kernels. The same would be necessary for any kernel with backports
1467             of commit 908790fa3b779d37365e6b28e3aa0f6e833020c3 or commit
1468             95ad5c291313b66a98a44dc92b57e0b37c1dd589 but not the fix in commit
1469             51486b900ee92856b977eacfc5bfbe6565028070 in the linux-stable repo
1470             (git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git) or
1471             the corresponding changes on other branches.
1472
1473     * Fixed a regression introduced in OpenAFS release 1.6.10 which could
1474       make the spurious "getcwd: cannot access parent directories" problem
1475       return (11558 11568) (RT #131780)
1476
1477     * Avoid leaking memory when scanning a corrupt directory (11707)
1478
1479   OS X clients
1480
1481     * Support OS X 10.10 "Yosemite" (11571 11572 11611) (RT #131946)
1482
1483   Solaris clients
1484
1485     * Avoid reading random data rather than correct cache content when using
1486       ZFS as the cache file system on Solaris >= 11, and fix potential similar
1487       problems on other platforms (11713 11714)
1488
1489   FreeBSD
1490
1491     * Build fix for releases >= 11.0 (11610)
1492
1493   OpenBSD
1494
1495     * Support release 5.4 (11700)
1496
1497
1498 OpenAFS 1.6.10
1499
1500   All platforms
1501
1502     * Don't hide the "version" subcommand in help output (11214)
1503
1504     * Documentation improvements (11126 11216 11222 11223 11225 11226)
1505
1506     * Improved diagnostics and error messages (11154 11246 11247 11249 11181
1507       11182 11183)
1508
1509     * Build system improvements (11158 11221 11224 11225 11227..11241 11282
1510       11342 11350 11353 11242 11367 11392)
1511
1512     * Avoid potentially erratic behaviour under certain error conditions by
1513       either avoiding or at least not ignoring them, in various places (11008
1514       11010..11065 11112 11148 11196 11530)
1515
1516   FreeBSD
1517
1518     * Support releases 9.3 and 10.1 (11368 11369 11402 11403 11404)
1519
1520     * Makes a disk cache more likely to work on FreeBSD, though such
1521       configurations remain not very tested (11448)
1522
1523   All server platforms
1524
1525     * Added volscan(8) (11252..11280 11387 11388)
1526
1527     * Fixed a bug causing subgroups not to function correctly if their
1528       ptdb entry had more than one continuation entry (11352)
1529
1530     * Logging improvements (10946 11153)
1531
1532     * Allow log rotation via copy and truncate (11193)
1533
1534     * Avoid a server crash during startup only observed on a single platform
1535       and when using a 3rd party library under certain circumstances, which is
1536       a collateral effect of the security improvements introduced in OpenAFS
1537       release 1.6.5 (11075) (RT #131852)
1538
1539   All client platforms
1540
1541     * Raised the free space reported for /afs to the maximum possible value of
1542       just under 2 TiB - the old value was 9 GiB on most platforms (10984)
1543
1544     * Reduced the amount of stack space used (11162 11163 11203 11164..11167
1545       11338 11339 11364..11366 11381)
1546
1547     * Sped up a periodic client task which could be problematically slow
1548       on systems with a large number of PAGs and files in use (11307)
1549
1550     * Fixed failure of the up command with large ACLs (11111)
1551
1552     * Avoid a potential crash of aklog (11218)
1553
1554     * Avoid potential crashes of scout and xstat_fs_test (11155)
1555
1556   Linux clients
1557
1558     * Support kernels up to 3.16 (11308 11309)
1559
1560     * Fixed a regression introduced in OpenAFS release 1.6.6 that made
1561       checking for existing write locks incorrectly fail on readonly volumes
1562       (11361)
1563
1564     * Fixed a regression introduced in OpenAFS release 1.6.8 that could
1565       cause VFS cache inconsistencies when a previously-accessed directory
1566       entry was removed and recreated with the same name but pointing to a
1567       different file on another client (11358)
1568
1569     * Use the right path to depmod in Red Hat packaging to avoid dependency
1570       calculation incorrectly failing unless a link /sbin -> /usr/sbin is
1571       present on the system performing it (11171) (RT #131860)
1572
1573     * Do not ignore kernel module build errors (11205)
1574
1575 OpenAFS 1.6.9
1576
1577   All server platforms
1578
1579     * Fix for OPENAFS-SA-2014-002
1580
1581 OpenAFS 1.6.8
1582
1583   All platforms
1584
1585     * Documentation improvements (10751 10875 10931 10897 10883 10954 10955)
1586
1587     * Improved diagnostics and error messages (10756 10814 10949)
1588
1589     * Fixed a bug in RX that could make errors during packet reception go
1590       unnoticed. (10733)
1591
1592     * Fixed a bug that made "vos size -dump" display the wrong size for
1593       large volumes. (10933)  (RT #131819)
1594
1595   All server platforms
1596
1597     * Change the default fileserver sync behavior from "delayed" to "onclose".
1598       This means that explicit syncing only happens when a volume is detached.
1599       (10809)
1600
1601     * Added the -offline-timeout and -offline-shutdown-timeout options to the
1602       fileserver, to implement interrupting clients accessing volumes we are
1603       trying to take offline. (6266 10799)
1604
1605   All client platforms
1606
1607     * When a client is shut down, it will give up its callbacks. The Windows
1608       client has been doing this since 2007. Note that older fileservers
1609       (1.3.50 to 1.4.5 and 1.5.0 to 1.5.27) had a bug in the implementation of
1610       the relevant RPC that could cause crashes or other undefined behavior
1611       when this happens. (6272 8840 10855)
1612
1613     * Restored the pre-1.6 behavior of "vos e" being an alias for "vos examine".
1614       (10886)
1615
1616     * Avoid flooding logs with warnings about byte-range locks, by throttling
1617       them per file. Also, make the messages more useful by including the
1618       FID. (10836..10839)
1619
1620     * Avoid a possible panic during shutdown while tracing. (10932)
1621
1622   Linux clients
1623
1624     * Fixed a bug that could cause the "getcwd: cannot access parent
1625       directories" problem (10804 10984)
1626
1627     * Avoid a delay when accessing uncached data in AFS in a confined
1628       context under SELinux. (10598)
1629
1630     * Red Hat packaging improvements (10600 10767 10807)
1631
1632 OpenAFS 1.6.7
1633
1634   All server platforms
1635
1636     * Fix for OPENAFS-SA-2014-001
1637
1638     * Fix for a potential DOS attack against RX servers
1639
1640 OpenAFS 1.6.6
1641
1642   All platforms
1643
1644     * As of this release, OpenAFS no longer ships uncompressed source tarballs.
1645       Tarballs are still shipped with both compression formats, gzip and bzip2.
1646       (10131)
1647
1648     * Documentation improvements (10136 10314 10601)
1649
1650     * Improved diagnostics and error messages (9412 10085 10274)
1651
1652     * Avoid redefining "assert" in our public header files, which could
1653       cause failures when building some applications using them. (10096)
1654
1655     * Fixes for parallel builds (10005 10309 10337)
1656
1657     * Added a -s switch to afscp (not installed by default) to help simulate
1658       a slow client. (9416 9417)
1659
1660     * Added a -probe switch to vlclient test program (not installed by default)
1661       to ping all vlservers in a cell in parallel. (9570)
1662
1663   All server platforms
1664     * The fileserver now ignores any vice partitions with a NeverAttach flag
1665       file present in the root directory. (RT #130561) (9470 9471)
1666
1667     * Restrict forcing CPS ("Current Protection Subdomain") recalculation in
1668       the fileserver to administrators. Also fixed a bug that could cause this
1669       operation to be incomplete. (9485 9487)
1670
1671     * Allow non-DAFS fileservers to attach unusable volumes, restoring pre-1.6
1672       behaviour. (RT #131505) (9499)
1673
1674     * Restored the pre-1.6 behaviour when running vos examine for a volume
1675       currently in a transaction, showing the volume as busy again rather than
1676       offline. (9685 9915 9916)
1677
1678     * Reduced the minimum time a bos salvage takes from 5 seconds to 1. (9476)
1679
1680     * Fixed buserver to not segfault when started with the -servers option.
1681       (RT #131706) (10166)
1682
1683     * Salvager fixes, addressing a wide variety of possible problems from
1684       unnecessary salvaging to aborts (9282 9283 9457 9458 9459 9461 9462 9480
1685       9481 10165 10167)
1686
1687     * Fixed a bug that could cause saved state information to be discarded
1688       when restarting a large or busy fileserver, which negatively impacted
1689       performance. (9683)
1690
1691     * Fixed a bug that could have caused undefined behaviour in the vlserver
1692       in rare cases when a fileserver registered its addresses in the VLDB.
1693       (9429)
1694
1695     * Added the -preserve-vol-stats switch to volserver, allowing it to keep
1696       the access statistics across volume restore and reclone operations
1697       instead of resetting them. (9477)
1698
1699     * Inserted an exponential delay between retries when bosserver attempts to
1700       restart a server process. (9571 10199)
1701
1702     * Improved vldb_check (not installed by default) to cope with broken
1703       vlentry names and volids, and provide more output to aid debugging.
1704       (10268)
1705
1706     * Releasing a volume after adding a new RO site no longer touches any of
1707       the existing RO sites, if the RW data hasn't changed since the last
1708       release. (10174)
1709
1710     * Make the copyDate field for RO clones have the same meaning as for
1711       remote RO volumes. Previously, the copyDate field for clones was updated
1712       every time we released. (9451)
1713
1714     * Fixed potentially undefined behaviour in ptserver when too many pts
1715       ids are allocated. (10124)
1716
1717     * Note that the server side NAT pings feature present in the prereleases
1718       was removed before the final release, since no positive feedback
1719       was provided during prerelease testing. (9420 10135)
1720
1721   Linux servers
1722
1723     * Start bosserver with -nofork in the systemd unit file, to allow systemd
1724       to track its state (10093)
1725
1726   All client platforms
1727
1728     * No longer track file locks on read-only volumes. Write locks can't
1729       succeed, read locks always will. Avoids log messages about this kind
1730       of lock. (8910)
1731
1732     * Added the "fs flushall" subcommand, which makes the client discard all
1733       cached data. This was previously available on Windows only. (9065 9388
1734       9389 9390)
1735
1736     * Fixed a bug that could make the client incorrectly believe its cache
1737       is up to date. This change could negatively impact AFS <-> DFS
1738       translators, should those still be running anywhere. (8898)
1739
1740     * Several changes to avoid panicing in certain error conditions.
1741       (9131 9287 10354 10355 10356 10357) (partially addressing RT #131747)
1742
1743     * Added the -rxmaxfrags switch to afsd, allowing to limit the number
1744       of UDP fragments sent or received per RX packet. (9430)
1745
1746     * Build fixes for aklog on several platforms (RT #131716) (9917 10107 10275)
1747
1748     * Require that the AFS mountpoint specified in the cacheinfo file is
1749       an absolute path. Relative paths result in a client that basically
1750       works but is not fully functional. (10253)
1751
1752     * Fixed a bug that could cause one of the afsd threads to enter an infinite
1753       loop (10431 .. 10436)
1754
1755   Linux clients
1756
1757     * Support Linux kernels up to 3.13 (10241)
1758
1759     * Fixed a bug that made readv/writev calls in AFS space fail with Linux
1760       kernels where generic_file_aio_read exists but those operations have
1761       not been switched to using aio_read/aio_write. This was a regression
1762       introduced with release 1.6.3 and affected at least RHEL 5.9 kernels.
1763       (10248)
1764
1765     * Fixed a similar bug making core dumps fail in AFS space, affecting
1766       a much wider range of kernels including the most recent ones.
1767       (RT #131729) (10254)
1768
1769     * Enhanced the keyring code to make PAGs work correctly on kernels with a
1770       distribution specific change to the Linux keyring code. This affected at
1771       least SLES 11 SP3 kernels. (10252)
1772
1773     * Fixed a bug that could make failures during PAG instantiation go
1774       unnoticed. (10255)
1775
1776     * Fixed a bug that made compilation fail for Linux kernels without
1777       keyring support. This affected at least the SLE 10 SDK and an
1778       OEM version of SLES 11 SP1. (10325)
1779
1780     * Fixed build for kernels with user namespace support enabled. Likely
1781       to be required for Ubuntu 14.04 and eventually other distributions.
1782       (10456 10457 10458 10518 10472)
1783
1784     * Support RHEL 6.5 kernels, and possibly others with changes backported
1785       from recent mainline kernels that touch getname/putname, by no longer
1786       using those functions. Previously, the client could cause a kernel
1787       panic when syscall auditing was enabled. (10578)
1788
1789     * Make tmpfs usable as the cache filesystem again. This had been broken
1790       since kernel 3.1 (9950 10193)
1791
1792     * When starting the client fails, clean up the backing device information
1793       created in sysfs, to avoid error messages during a subsequent start
1794       and possible system instability later on (10454)
1795
1796     * Update Red Hat packaging to support Fedora >= 20, RHEL >= 7 and
1797       ELrepo kernels (10597 10619 10622 10703 10704)
1798
1799   OS X Clients
1800
1801     * Support OS X 10.9 "Mavericks" (10519 10541 10542 10543 10548 10549)
1802
1803   AIX clients
1804
1805     * Fixed a bug that caused the 1.6 AIX client to never receive any RX
1806       packets in the kernel. (RT #131725)
1807
1808   FUSE client
1809
1810     * Support Solaris 11 (9454 9455)
1811
1812     * Allow other users to access filesystems mounted by root. (9452)
1813
1814   FreeBSD
1815
1816     * Build tvolser and dvolser on this platform (10122)
1817     * Several fixes to catch up with newer releases (10374 .. 10381)
1818
1819   NetBSD
1820
1821     * Build tsalvaged, tvolser and dvolser on this platform (10121)
1822     * Fixed build on NetBSD 5 and newer. (10138)
1823
1824 OpenAFS 1.6.5
1825
1826 All platforms
1827
1828     * Fixes for OpenAFS-SA-2013-0003 and OpenAFS-SA-2013-0004
1829
1830 OpenAFS 1.6.4
1831
1832 All platforms
1833
1834     * Obey the jumbo/nojumbo settings for ubik servers (the DB servers)
1835       too. In previous releases, those servers may have used jumbograms
1836       even if they were not configured to do so. This change corrects
1837       the actual behaviour, and will improve performance and reliability
1838       for sites where jumbograms are problematic. It could cause a decrease
1839       in performance for sites where jumbograms work, but those can turn
1840       them back on manually.
1841
1842     * Dozens of fixes for common coding problems like use after free,
1843       use of possibly uninitialised memory, reading or writing past the
1844       end of arrays and potential NULL pointer derefences. Spotted by
1845       code analysis tools or human inspection.
1846
1847     * Documentation improvements.
1848
1849     * Fixes and improvements to the diagnostic or log messages printed by
1850       vos, the fileserver and others.
1851
1852     * Build fixes, making parallel builds more reliable with certain
1853       configuration options and helping various platforms including
1854       recent releases of IRIX, Solaris and several flavours of Linux.
1855
1856     * Avoid sending a small amount of data over the wire unencrypted
1857       under certain conditions, and emit the correct error message in
1858       this case.
1859
1860 All server platforms
1861
1862     * Avoid generating duplicate IDs for readonly and backup volumes,
1863       which could happen under certain conditions.
1864
1865     * Allow the fileserver to return volume data like quota or free space,
1866       which is available publicly elsewhere, without the additional access
1867       check for read permissions on a volume's root directory the fileserver
1868       performed before.
1869
1870     * The fileserver now emits a log message when it ran out of memory for
1871       callbacks.
1872
1873     * Avoid several potential fileserver problems, including memory
1874       corruption and segmentation faults, due to client bookkeeping.
1875
1876     * Avoid known cases of silent data corruption due to background syncs
1877       on the fileserver, especially during Copy on Write.
1878
1879     * Make the fileserver sync behaviour runtime configurable. Up to 1.4.5,
1880       we had synchronous syncs which were safe but really slow. Since 1.4.5,
1881       we've had asynchronous syncs which are much faster but believed to
1882       be the cause of rare data corruption issues, and while all known cases
1883       of these happening are believed to be fixed in the 1.6.3 release, doubts
1884       remain. This change allows choosing between those, and in addition allows
1885       to turn syncs by the fileserver off altogether, thus relying on the vice
1886       partition's backend filesystem and the operating system, or to just
1887       execute them when a volume is detached. The default behaviour is
1888       unchanged from releases since 1.4.5, but it's highly recommended to
1889       consider the additional options this change provides. Future OpenAFS
1890       releases will default to "-sync=none".
1891
1892     * For dbservers, avoid a situation where misinterpreting transient
1893       network errors causes long-term issues with achieving ubik quorum.
1894
1895 All UNIX client platforms
1896
1897     * Improvements to the detection of an aklog-specific krb5 configuration
1898       file, for the purposes of turning on "weak crypto" for aklog.
1899
1900     * Fixed a regression introduced in release 1.6.2 which caused the
1901       supposedly persistent disk cache to be discarded upon client start.
1902       (RT #131655)
1903
1904 Linux clients
1905
1906     * Support Linux kernels up to 3.10
1907
1908     * Fixed two bugs making it impossible to unmount a disk cache filesystem
1909       after it has been used by the client. (RT #131613)
1910
1911     * Fixed a bug that could cause an oops with kernels 3.6 and later
1912
1913 OpenBSD
1914
1915     * Improved support for OpenBSD 4.9 to 5.3
1916
1917 OpenAFS 1.6.3
1918
1919   This release number had to be skipped for technical reasons.
1920
1921 OpenAFS 1.6.2.1
1922
1923   Linux clients
1924
1925     * Support Linux kernels up to 3.8.
1926
1927     * Make the init script cope with the output of ifconfig on recent Fedora.
1928
1929 OpenAFS 1.6.2
1930
1931   All platforms
1932
1933     * Fix buffer overflows in fileserver and ptserver.
1934
1935     * Abort an rx connection when given an unknown service (Gerrit 7593).
1936
1937     * "idle dead" behavior improvements.
1938
1939     * Documentation updates.
1940
1941   All server platforms
1942
1943     * Fix rare file corruption during background sync (Gerrit 8796).
1944
1945     * Fix corrupting clients' metadata cache during certain errors (Gerrit
1946       6957).
1947
1948     * Avoid saying a volume doesn't exist when accessed as the volume is
1949       going offline (Gerrit 7488).
1950
1951     * Fix fileservers to properly report >2 TiB partitions.
1952
1953     * Fix stale volume info from vos examine on non-DAFS filservers.
1954
1955     * Fix possible volume corruption with vos convertROtoRW.
1956
1957     * Fix bosserver to preserve all command-line options over restart.
1958
1959     * Fix bosserver to properly kill hung processes during shutdown.
1960
1961   All UNIX client platforms
1962
1963     * Fixes for memcache, especially on Solaris.
1964
1965     * Increase the size of the DNS resolver answer buffer to allow sites
1966       with a long response list to use SRV and AFSDB records.
1967
1968     * Fix a crash when a server appears to run out of addresses (Gerrit
1969       7487).
1970
1971     * Fix cache corruption when reading from a file another client is
1972       simultaneously writing to (Gerrit 7994).
1973
1974     * Improve handling of disk cache disk errors.
1975
1976   Linux
1977
1978     * fix DKMS configuration for DKMS 2.2.
1979
1980     * Avoid generating inode number 0 with md5 inodes (Gerrit 7276).
1981
1982     * Fix a crash when reading /proc/fs/openafs/unixusers (Gerrit 7914).
1983
1984     * Make PAG-less access use the real UID of the calling process
1985       instead of the effective UID, when determining what credentials to
1986       use (Gerrit 7931).
1987
1988     * Fix possible abuse of fs mkmount.
1989       Prior to 1.6.2, users could crash a client by nesting volume mounts.
1990
1991     * Fix fileserver memory corruption on RHEL 6
1992       Prior to 1.6.2, fileservers on RHEL 6 may crash under heavy load.
1993
1994     * Fix client page cache corruption on Linux
1995       When multiple clients read and write to a file, the reading client
1996       may see first page (4096 bytes) of a file as nulls.
1997
1998     * Support Linux kernels up to 3.7.
1999
2000     * Support newer glibc versions.
2001
2002     * Improve client systemd unit file.
2003
2004     * Update Red Hat packaging.
2005
2006   OS X
2007
2008     * Fix crashes on shutdown.
2009
2010     * Prevent unloading the module before shutdown completes.
2011
2012     * Security improvement for the OpenAFS preference pane.
2013
2014   Solaris
2015
2016     * Support newer versions of the Sun Studio compiler software.
2017
2018     * Support compiling on newer versions of Solaris 11 and Solaris 10.
2019
2020
2021 OpenAFS 1.6.0 (2011-08-15)
2022
2023   All platforms
2024
2025     * Substantial Rx updates to correct erroneous behavior.
2026
2027     * vos now properly deals with matching sites when servers are
2028       multihomed.
2029
2030     * Don't stop Rx keepalives after an ackall is received, avoiding
2031       spurious connection timeouts. (128848)
2032
2033     * Don't retry Rx calls on channels returning busy errors and improve
2034       Rx busy call channel error handling. (128671)
2035
2036     * Properly enable Rx connection hard timeouts.
2037
2038     * Rx NAT pings are not enabled until peer has answered.
2039
2040     * Initialize rx_multi lock before use.
2041
2042     * Avoid spurious crashes when initializing in "backup" client.
2043
2044     * Revert UUID support in vos.
2045
2046     * pt_util fixed to properly create new databases.
2047
2048     * MTU discovery now properly shut down on call reset.
2049
2050     * Avoid leaking references to hosts during callback break multi-Rx
2051       operations. (129376)
2052
2053     * xstat tools now cope with differing timeval structures between
2054       endpoints.
2055
2056     * Numerous fixes to command argument parsing.
2057
2058     * Documentation updates.
2059
2060   All server platforms
2061
2062     * A file descriptor leak which could result in corrupted files in the
2063       fileserver was fixed. An IMMEDIATE upgrade from previous 1.5 release
2064       fileservers is recommended.
2065
2066     * Fix ptserver supergroups support on 64 bit platforms.
2067
2068     * Demand attach salvaging doesn't use freed volume pointers.
2069
2070     * Properly hold host lock during host enumeration in fileserver.
2071
2072     * Attempt to recovery more quickly from timed out volume release
2073       transactions.
2074
2075     * Auditing now properly byte order swaps IP addresses when printing.
2076
2077     * vos split now has improved error handling.
2078
2079     * Many changes to again support Windows fileservers.
2080
2081     * During volume removal, data removal speed improved.
2082
2083     * Improve CPU utilization during volume attaching by DAFS.
2084
2085     * In salvager check-only mode, avoid potentially fixing a vnode.
2086
2087     * Fix support for large (greater than 2gb) volume special files.
2088
2089     * Salvager will not crash if multiple or bad volume link tables are
2090       encountered.
2091
2092     * Avoid erroneous full dump by remembering which sites were out of
2093       date at the start of the release.
2094
2095     * A deleted volume can now be recreated properly.
2096
2097     * Callbacks are again not broken during whole partition salvages.
2098
2099     * Positional vectored IO fixed for largefile (>2GB) capable systems.
2100
2101     * Fileserver per-client thread usage again properly enforced.
2102
2103     * Anonymous dropbox support improved and drawbacks documented.
2104
2105     * Demand attach: ensure vnodes are not reallocated while in use due to
2106       volume bitmap errors.
2107
2108     * Properly support large volume numbers (larger than 2147483647).
2109
2110     * Allow salvager to be run manually again when DAFS is being
2111       used. (129458)
2112
2113     * Avoid leaking references to hosts during callback break multi-Rx
2114       operations. (129376)
2115
2116     * Demand attach: unlink fileserver state file on standalone salvage.
2117
2118     * Salvager tries harder to detect linktable issues.
2119
2120     * Demand attach: don't attach volumes with special status set.
2121
2122     * Avoid crashing on host table exhaustion. Instead, defer clients.
2123
2124   Microsoft Windows
2125
2126     * afs_config will not longer set the Tray Icon State in the registry
2127       if the checkbox is not present in the dialog. (128591)
2128
2129     * AFS Explorer Shell Extension now works from folder backgrounds.
2130       Overlays for mount points and symlinks are present in the dll, but
2131       are not registered at present by the installers.
2132
2133     * Do not use RankServerInterval registry value as the value for
2134       PerformanceTuningInterval.
2135
2136     * When the data version of a mountpoint or symlink changes, the target
2137       string in the cm_scache_t object must be cleared.
2138
2139     * "fs checkservers" now includes vldb servers in the output and only
2140       lists multi-homed servers once.  A multi-homed server that has at
2141       least one up interface is no longer considered to be down.
2142
2143     * When asynchronously storing dirty data buffers to the file server
2144       ensure that (a) the cm_scache_t object and the cm_buf_t object are
2145       for the same File ID so that locking and signalling work properly;
2146       and (b) if the FID no longer exists on the file server, do not
2147       panic, just discard the buffer.
2148
2149     * When processing VNOVOL, VMOVED and VOFFLINE errors perform server
2150       comparisons by UUID or address and not simply by cm_server_t
2151       pointer.  Otherwise, server failover may not succeed.
2152
2153     * Do not preserve status information for cm_scache_t objects when the
2154       issuing server is multi-homed.
2155
2156     * Giving up all callbacks when shutting down or suspending the machine
2157       is now significantly faster due to the use of an rx_multi
2158       implementation.  (This functionality is still off by default and
2159       must be activated by a registry value.)
2160
2161     * Race conditions were possible when updating the state of the
2162       cm_volume_t flags and when moving the volumes within the least
2163       recently used list.
2164
2165     * Ensure that the lanahelper library does not perform a NCBRESET of
2166       each lan adapter when enumerating the current network bindings.
2167       Correcting this permits OpenAFS to work on Windows 7 when the
2168       network adapter settings change.
2169
2170     * Fix creation of mount points and symlinks as \\AFS\xxxx
2171
2172     * Icon tray state now conditionally set. (128591)
2173
2174     * Properly create new cell mount points in freelance mode.
2175
2176     * Avoid recursive offline volume checks.
2177
2178     * Fix caching of non-existent volumes.  The test to trigger an
2179       immediate CM_ERROR_NOSUCHVOLUME in cm_UpdateVolumeLocation() was
2180       backwards.
2181
2182     * Prevent the background daemon from checking the status of
2183       non-existent volumes.  cm_CheckOfflineVolumes() should skip volume
2184       groups with the CM_VOLUMEFLAG_NOEXIST flag set.
2185
2186     * The afskfw library should return an error immediately if the
2187       krb5_32.dll library cannot be loaded.  Affects afslogon.dll and
2188       afscreds.exe.
2189
2190     * No longer depend on leashw32.dll in afskfw library.
2191
2192     * NPLogonNotify must provide the user password in all calls to
2193       KFW_AFS_get_cred().  It cannot count on a credential cache being
2194       preserved between calls.  Permits tokens to be acquired for all
2195       cells listed in the TheseCells registry value for a domain.
2196
2197     * Improve the trace logging from NPLogonNotify().
2198
2199     * Avoid a race when writing the cm_scache_t mountPointString
2200       when acquiring mount point or symlink target data via
2201       cm_GetData().  The race could result in bogus target
2202       data being cached.
2203
2204     * Permit the use of des-cbc-md5 and des-cbc-md4 enctypes
2205       as DES keys in asetkey.exe.
2206
2207     * aklog supports dotted Kerberos v5 principal names.
2208
2209     * afskfw library always attempts afs/cell@USER-REALM
2210
2211     * afskfw library must test return code from krb5_cc_start_seq_get() or
2212       will trigger a null pointer exception when using Heimdal.
2213
2214     * Lock protected fields must be 32-bit in order to avoid memory
2215       overwrite races.
2216
2217     * Add support for NTFS symlinks.
2218
2219     * Handle file search requests for virtual syscall ioctl file.
2220
2221     * Process SyncOps properly to enforce ordered operations.
2222
2223     * Avoid recursing during NewServer operations.
2224
2225     * Correct lock acquisition order during SMB locking.
2226
2227     * Add shutdown message to event log.
2228
2229     * Check offline volume status by policy rather than on each daemon
2230       thread run.
2231
2232     * Return error on directory object not found instead of crashing.
2233
2234     * Improve error message output.
2235
2236     * afslogin.dll can start afsd_service if it's not starting or started.
2237
2238     * Optimize away release lock RPCs for deleted files.
2239
2240     * Background Daemon will not perform operations on deleted files.
2241
2242     * Resort recently used directories to the top of the LRU if the
2243       directory is larger than the stat cache.
2244
2245     * Resort deleted objects to the bottom of the LRU.
2246
2247     * Use interlocked operations for state and queue fields to allow safe
2248       bit set and clear on multiprocessor systems.
2249
2250   All UNIX client platforms
2251
2252     * Servers now marked down when GetCapabilities returns error.
2253
2254     * In-use vcache count is now properly tracked.
2255
2256     * Check for /afs existance before starting, unless -nomount is
2257       specified.
2258
2259     * Avoid a potential panic when using /afs/.:mount syntax.
2260
2261     * Avoid a panic in memcache mode due to missing CellItems file.
2262
2263     * FUSE client support fixed for non-/afs mounts.
2264
2265     * Avoid a potential deadlock (which times out) when we need to
2266       allocate more callback returns and must flush some already in use.
2267
2268     * Deal with libcom_err conflicts with other packages using it
2269       (e.g. krb5) (128640)
2270
2271     * Fall back to afs3-vlserver SRV record values when afs3-ptserver SRV
2272       record is not available.
2273
2274     * Avoid holding unneeded locks when probing server capabilties.
2275
2276     * Do not attempt page flushes for directories.
2277
2278     * Rx connection reference counting is enabled.
2279
2280     * An Rx connection reference count leak is fixed in bulkstat.
2281
2282     * Handle unparsable directory objects.
2283
2284     * Handle Kerberos cred cache errors in aklog.
2285
2286   AIX
2287
2288     * Fix PAG usage to track by PAG identifier, not group list.
2289
2290   FreeBSD
2291
2292     * Fix socket termination on shutdown.
2293
2294     * Support for 7.2, 7.3, 7.4 and 8.2 included.
2295
2296     * References to vcaches are no longer leaked during root or reclaim.
2297
2298     * Remove support for "Giant" lock as we no longer need to use it.
2299
2300     * Don't sleep with AFS GLOCK.
2301
2302     * Properly enable 64 bit long long support.
2303
2304     * Restore support for FreeBSD 7 (128612)
2305
2306     * Fix locking issues at shutdown and avoid panic at shutdown due to
2307       vcache flushing.
2308
2309     * Support for virtual network stacks.
2310
2311     * New RC script, updated packaging.
2312
2313   IRIX
2314
2315     * Properly create new vnodes to avoid crashing in the client.
2316
2317   Linux
2318
2319     * Support through kernel 2.6.39.  Treat Linux 3.0 as Linux 2.6 for
2320       sysname purposes.
2321
2322     * Use rx_Readv in cache bypass to improve performance.
2323
2324     * Properly handle 0-length replies during cache bypass operations.
2325
2326     * Properly handle non-contiguous readpage cache bypass operations.
2327
2328     * Do proper locking when transitioning to or from cache bypass.
2329
2330     * Avoid extra runs of vcache freeing routine. (128756)
2331
2332     * Perform vcache eviction via a fast path before visiting vcaches
2333       where sleep is needed.
2334
2335     * setpag() errors are now properly reported.
2336
2337     * Avoid attempting to free stat cache entries when we are below
2338       user-specified number of entries in use.
2339
2340     * Properly track user-specified number of stat cache entries to use as
2341       a desired usage target.
2342
2343     * Don't read pages beyond EOF in the cache. (128452)
2344
2345     * Various corrections and improvements to Red Hat packaging, including
2346       modifying the init script to allow deferring for a new binary
2347       restart and properly supporting RHEL6.
2348
2349     * Fix lockup in 2.6.38 due to erroneous kernel feature configure test.
2350
2351     * Improve RPM building tools.
2352
2353     * Attempt to properly handle SELinux in packaging.
2354
2355     * Init script properly returns status as exit code.
2356
2357     * RPM packaging fixes (executable libraries, no postinstall message)
2358
2359     * Kill i386 from RPM packaging.
2360
2361   MacOS
2362
2363     * MacOS 10.7 support.
2364
2365     * Properly handle setpag errors.  PAGs are not supported.
2366
2367     * Check for unloaded kernel extensions when decoding AFS panics.
2368
2369     * Disable "get tokens at login" in prefs pane if AD authentication
2370       plugin is configured.
2371
2372     * aklog AuthorizationPlugin now provided.
2373
2374     * Preferences Pane behavior fixed for 1.6 series (version detection is
2375       used to select default behavior).
2376
2377     * A potential kernel panic during bulkstat operations is
2378       fixed. (128511)
2379
2380     * 64-bit MacOS kernel performance is greatly improved. (128934)
2381
2382     * Properly shut down AFS, closing the Rx socket in the upcall handler
2383       to avoid attempting to process data after we can no longer do so.
2384
2385     * Rework logic for bulk status operations to avoid a potential hang.
2386
2387     * Avoid panic when doing FSEvent synthesis.
2388
2389     * Fix bug when using non-dynroot.
2390
2391     * Update Kerberos support in PreferencesPane.
2392
2393   NetBSD
2394
2395     * Updates for platform support.
2396
2397   OpenBSD
2398
2399     * Bug fixes for issues introduced previously in 1.5 series.
2400
2401     * Support through OpenBSD 4.8.
2402
2403   Solaris
2404
2405     * Switch to ioctl() syscall replacement for Solaris 11 since syscall
2406       65 is not safe.
2407
2408     * Fix support for Solaris pre-10.
2409
2410     * Corrected Solaris 11 startup script.
2411
2412     * vcache mappings freed on shutdown to avoid panic.
2413
2414     * Properly report errors for AFS system call callers.
2415
2416     * Don't leave dangling function references if kernel extension fails
2417       to load.
2418
2419     * Try harder to avoid deadlocks on file-larger-than-cache operations.
2420
2421     * Avoid panic on shutdown when mount failed.
2422
2423
2424 OpenAFS 1.6.0pre2
2425
2426   All systems: Minor bugfixes.
2427
2428   ADDITIONAL CHANGES IN 1.6.0PRE2
2429
2430   All platforms:
2431
2432     - Documentation updates.
2433
2434     - Don't stop Rx keepalives after an ackall is received, avoiding
2435       spurious connection timeouts. (128848)
2436
2437     - Don't retry Rx calls on channels returning busy errors. (128671)
2438
2439     - vos will not die with a double free error at command completion.
2440
2441     - Properly enable Rx connection hard timeouts.
2442
2443     - Initialize rx_multi lock before use.
2444
2445     - Avoid spurious crashes when initializing in "backup" client.
2446
2447   All unix platforms:
2448
2449     - Check for /afs existance before starting, unless -nomount is specified.
2450
2451     - Avoid a potential panic when using /afs/.:mount syntax.
2452
2453     - Avoid a panic in memcache mode due to missing CellItems file.
2454
2455   All server platforms:
2456
2457     - Attempt to recovery more quickly from timed out volume release
2458       transactions.
2459
2460     - Auditing now properly byte order swaps IP addresses when printing.
2461
2462     - vos split now has improved error handling.
2463
2464     - Many changes to again support Windows fileservers.
2465
2466     - During volume removal, data removal speed improved.
2467
2468     - Improve CPU utilization during volume attaching by DAFS.
2469
2470     - In salvager check-only mode, avoid potentially fixing a vnode.
2471
2472     - Fix support for large (greater than 2gb) volume special files.
2473
2474     - Salvager will not crash if multiple or bad volume link tables
2475       are encountered.
2476
2477     - Avoid erroneous full dump by remembering which sites were out of date
2478       at the start of the release.
2479
2480   FreeBSD:
2481
2482     - Remove support for "Giant" lock as we no longer need to use it.
2483
2484     - Don't sleep with AFS GLOCK.
2485
2486     - Properly enable 64 bit long long support.
2487
2488     - Restore support for FreeBSD 7 (128612)
2489
2490     - Fix locking issues at shutdown.
2491
2492   Linux:
2493
2494     - support through kernel 2.6.38.
2495
2496     - RedHat packaging now properly supports RHEL6.
2497
2498     - Use rx_Readv in cache bypass to improve performance.
2499
2500     - Properly handle 0-length replies during cache bypass operations.
2501
2502     - Properly handle non-contiguous readpage cache bypass operations.
2503
2504     - Do proper locking when transitioning to or from cache bypass.
2505
2506     - Avoid extra runs of vcache freeing routine. (128756)
2507
2508   MacOS:
2509
2510     - Check for unloaded kernel extensions when decoding AFS panics.
2511
2512     - Properly handle setpag errors. PAGs are not supported.
2513
2514     - Disable "get tokens at login" in prefs pane if AD authentication
2515       plugin is configured.
2516
2517   OpenBSD:
2518
2519     - support through OpenBSD 4.8.
2520
2521   Solaris:
2522
2523     - Fix support for Solaris pre-10.
2524
2525   Windows:
2526
2527     - afs_config will not longer set the Tray Icon State
2528       in the registry if the checkbox is not present in
2529       the dialog. (128591)
2530
2531     - AFS Explorer Shell Extension now works from folder
2532       backgrounds.  Overlays for mount points and symlinks
2533       are present in the dll, but are not registered at present
2534       by the installers.
2535
2536     - Do not use RankServerInterval registry value as the value for
2537       PerformanceTuningInterval.
2538
2539     - When the data version of a mountpoint or symlink changes,
2540       the target string in the cm_scache_t object must be cleared.
2541
2542     - "fs checkservers" now includes vldb servers in the output
2543       and only lists multi-homed servers once.  A multi-homed
2544       server that has at least one up interface is no longer
2545       considered to be down.
2546
2547     - When asynchronously storing dirty data buffers to the
2548       file server ensure that (a) the cm_scache_t object and
2549       the cm_buf_t object are for the same File ID so that
2550       locking and signalling work properly; and (b) if the
2551       FID no longer exists on the file server, do not panic,
2552       just discard the buffer.
2553
2554     - When processing VNOVOL, VMOVED and VOFFLINE errors perform
2555       server comparisons by UUID or address and not simply by
2556       cm_server_t pointer.  Otherwise, server failover may not
2557       succeed.
2558
2559     - Do not preserve status information for cm_scache_t objects
2560       when the issuing server is multi-homed.
2561
2562     - Giving up all callbacks when shutting down or suspending
2563       the machine is now significantly faster due to the use
2564       of an rx_multi implementation.  (This functionality is
2565       still off by default and must be activated by a registry
2566       value.)
2567
2568     - Race conditions were possible when updating the state
2569       of the cm_volume_t flags and when moving the volumes
2570       within the least recently used list.
2571
2572     - Ensure that the lanahelper library does not perform a
2573       NCBRESET of each lan adapter when enumerating the
2574       current network bindings.  Correcting this permits OpenAFS
2575       to work on Windows 7 when the network adapter settings
2576       change.
2577
2578     - Fix creation of mount points and symlinks as \\AFS\xxxx
2579
2580   PREVIOUS CHANGES:
2581
2582   All platforms:
2583
2584     - vos now properly deals with matching sites when servers are multihomed.
2585
2586   All Unix platforms:
2587
2588     - Servers now marked down when GetCapabilities returns error.
2589
2590     - In-use vcache count is now properly tracked.
2591
2592   All server platforms:
2593
2594     - Fix ptserver supergroups support on 64 bit platforms.
2595
2596     - Demand attach salvaging doesn't use freed volume pointers.
2597
2598     - Properly hold host lock during host enumeration in fileserver.
2599
2600   FreeBSD:
2601
2602     - Fix socket termination on shutdown.
2603
2604     - Support for 7.2, 7.3, 7.4 and 8.2 included.
2605
2606     - References to vcaches are no longer leaked during root or reclaim.
2607
2608   Linux:
2609
2610     - Define llseek handler to avoid ESPIPE error in 2.6.37.
2611
2612     - Mount interface replaces get_sb (new for 2.6.37, not yet required).
2613
2614     - RedHat init script allows deferring for a new binary restart.
2615
2616     - DEFINE_MUTEX replaces DECLARE_MUTEX for 2.6.37.
2617
2618   MacOS:
2619
2620     - Correct return value from setpag syscall.
2621
2622   OpenBSD:
2623
2624     - Bug fixes for issues introduced previously in 1.5 series.
2625
2626   Solaris:
2627
2628     - Switch to ioctl() syscall replacement for Solaris 11 since syscall 65
2629       is not safe.
2630
2631
2632 OpenAFS 1.5.78 (2010-11-04)
2633
2634   All platforms
2635
2636     * Revisions to Rx to fix performance issues.
2637
2638     * Make fs getfid behave consistently across all platforms. (128372)
2639
2640     * Properly check IDs handed to pts when creating users or groups so
2641       useful error messages can be provided. (128343)
2642
2643     * Correct byte order handling of port in afsconf_LookupServer for SRV
2644       records.
2645
2646     * Force a full dump when releasing to a site which was previously
2647       marked "don't use", in case the previous clone was out of date.
2648
2649   All server platforms
2650
2651     * Demand salvage of attached volumes now correctly track attachment
2652       state.
2653
2654     * Avoid a potential crash due to failure to hold a lock when attaching
2655       a volume fails.
2656
2657   Microsoft Windows
2658
2659     * Track SMB connections by SID rather than username.
2660
2661     * Error write attempts to known-readonly volumes earlier.
2662
2663     * Validate directory buffers to avoid potential crashes.
2664
2665     * Handle VIO errors from bulkstatus.
2666
2667     * Make PMTU discovery configurable and register error handlers for it.
2668
2669   All UNIX client platforms
2670
2671     * Use larger I/O sizes in memcache to improve performance.
2672
2673     * Avoid potential alignment issues doing I/O for pioctl calls.
2674
2675   FreeBSD
2676
2677     * Avoid panicing if the listener process is not findable.
2678
2679     * Avoid deadlock issues while performing lookups.
2680
2681   Linux
2682
2683     * Handle stale file handle errors for some cache partition types.
2684
2685     * Avoid blocking with xvcache lock when attempting to free in-use
2686       vcaches.
2687
2688     * Build fixes for older kernels.
2689
2690     * Properly configure LWP to use ucontext() on platforms where it
2691       should.
2692
2693     * Eliminate spurious errors from AFS system call returns. (126230)
2694
2695   MacOS
2696
2697     * Attempt to honor configured Kerberos defaults in Preferences Pane.
2698
2699
2700 OpenAFS 1.5.77 (2010-09-08)
2701
2702   All platforms
2703
2704     * Rx path MTU detection will terminate detection in cases where the
2705       minimum required packet size cannot be transferred.
2706
2707     * vos dryrun mode now shows effects for syncvldb single volume case.
2708
2709     * vos dryrun mode now shows "status after" for syncvldb and syncserv.
2710
2711   All server platforms
2712
2713     * RXAFS_GetStatistics64 now returns statistics properly.
2714
2715   Microsoft Windows
2716
2717     * Attempt to properly identify the local system SMB connection for
2718       token tracking.
2719
2720     * Remap timeout and offline errors to proper NT RPC errors.
2721
2722     * Properly fail over to other replicas on bulkstat IO errors.
2723
2724     * Properly error delete-mode createfile if a file is set readonly.
2725
2726     * Validate directory entry buffers to avoid crashing the service.
2727
2728     * Log file modes properly.
2729
2730     * Log cell name when logging server information.
2731
2732   All UNIX client platforms
2733
2734     * cacheout program for discarding callbacks is now built.
2735
2736     * bulkstatus kernel locking is corrected to avoid a potential panic.
2737
2738   Dragonfly BSD
2739
2740     * userspace support update
2741
2742   FreeBSD
2743
2744     * Updated vnode locking for children returned via lookup().
2745
2746     * Avoid file open undercount with needed calls to
2747       FakeOpen/FakeClose().
2748
2749     * Use vnode_pager_setsize to properly track file size during kernel
2750       IO.
2751
2752     * Update system call installation.
2753
2754     * Fix shutdown of Rx kernel listener to avoid potential dereference
2755       after it's gone.
2756
2757     * Avoid closing vnodes during vnode recycle.
2758
2759     * Fix bogus call to FlushVS for vnode reclaims.
2760
2761   Linux
2762
2763     * Packaging updated for current configure options and built files.
2764
2765     * Cache bypass now holds reference on pages during readpage.
2766
2767     * s390x setgroups32 patching update.
2768
2769   MacOS
2770
2771     * DNS resolver is reinitialized on IP address change. (126440)
2772
2773
2774 OpenAFS 1.5.76 (2010-08-16)
2775
2776   All platforms
2777
2778     * Updates to build-time configuration.
2779
2780     * Fix XDR support in Rx to match header definition.
2781
2782     * vos status now shows transaction creation, not action creation.
2783
2784     * Rx avoids reporting loopback adapters when listing interfaces.
2785
2786   All server platforms
2787
2788     * Demand-Attach Fileserver always built and installed (dafileserver,
2789       davolserver, dasalvager).
2790
2791     * Return VNOVOL from fileserver when a volume is deleted.
2792
2793     * Ignore duplicate tags during volume restore operation.
2794
2795     * Update inode array after salvage repairs volume.
2796
2797     * Zero a corrupted header in memory during salvage to avoid further
2798       corruption.
2799
2800     * Fix NAMEI backend to allow low-numbered volumes to work properly.
2801
2802     * ptserver does not include cell name as part of length check for
2803       names.
2804
2805     * Updated error messages for unblessed volumes.
2806
2807     * vlserver avoids buffer overflow with regex pattern
2808
2809     * Attach-time failures now note failures as the rest of the fileserver
2810       would.
2811
2812     * Server argument logging will no longer overflow stack.
2813
2814     * Provide fast-restart-like unsafe-nosalvage option for DAFS.
2815
2816     * Deal with host hash collisions in the fileserver.
2817
2818   Microsoft Windows
2819
2820     * Avoid crashing when interpreting a drive letter as potentially
2821       matching a cell name.
2822
2823     * Properly handle volume package errors.
2824
2825     * Allow page recycling from known-readonly content without ensuring
2826       they are not dirty.
2827
2828     * 32 bit tools installer should not override client configuration.
2829
2830     * Ensure root scache item has a valid callback when use is attempted.
2831
2832     * Freelance directory changes now properly invalidate and replace the
2833       old root object.
2834
2835   All UNIX client platforms
2836
2837     * Support disconnected reconnecting with specified UID for PAGless
2838       platforms.
2839
2840     * Proper disconnected vnode reference tracking.
2841
2842     * Update server site blacklisting to not return success if nothing was
2843       blacklisted.
2844
2845     * Avoid a panic during vcache contention due to CVInit vcache
2846       racing. (127645)
2847
2848   FreeBSD
2849
2850     * Update for network stack in 8.1/9.0.
2851
2852   HP-UX
2853
2854     * Bug fixes.
2855
2856   Linux
2857
2858     * 2.6.36 support
2859
2860     * Disable PMTU error packet handling.
2861
2862     * flock() fixes.
2863
2864     * Debian packaging updated.
2865
2866     * freezer interface updates.
2867
2868   MacOS
2869
2870     * Hold references to disconnected mode written vnodes properly.
2871
2872   Solaris
2873
2874     * Handle NFS translator module references for amd64.
2875
2876     * INODE fileserver backend support now exists for amd64.
2877
2878
2879 OpenAFS 1.5.75 (2010-07-07)
2880
2881   All platforms
2882
2883     * Prevent rx_rpc_stats global lock from being a bottleneck.
2884
2885     * Path MTU discovery is now provided to allow traffic to pass networks
2886       with sub-1500 byte MTUs and poor fragment handling.
2887
2888     * Further reduce Rx NAT ping transmission when enabled.
2889
2890     * Update Kerberos 5-based token handling in rxkad from upstream
2891       Heimdal.  (127554)
2892
2893     * Update version numbers emitted during build to reflect what is
2894       actually being built.
2895
2896     * Add "-human" switch for human-readable units in fs diskfree and
2897       listquota. (124529)
2898
2899     * vos provides reasons for locked volumes when known.
2900
2901     * Do not count retransmission and ping acks as non-idle for Rx
2902       connections.
2903
2904     * Rx: provide service-specific data getter and setter routines.
2905
2906     * Update build-time Kerberos detection.
2907
2908     * Updated userspace AFS client.
2909
2910     * Beginning of a modernized test suite.
2911
2912     * Additional documentation.
2913
2914     * Updated documentation, notably the Administrators Guide.
2915
2916     * Substantial code cleanup.
2917
2918   All server platforms
2919
2920     * Update handling of vnode allocation failures.
2921
2922     * DAFS: allow salvaging volumes not known to the fileserver, to allow
2923       cleanup of data not attached to a current volume.
2924
2925     * Properly handle volumes slated for destruction.
2926
2927     * Handle volumes with many files properly.
2928
2929     * Force core file generation in bosserver by overriding default
2930       resource limits when possible.
2931
2932     * Update vlclient and vldb_check.
2933
2934     * Avoid potentially corrupting a volume on creation if files are left
2935       from previous failed cleanup.
2936
2937     * Note volume changed during salvage as needed.
2938
2939     * DAFS: do not assume invalid addresses are in fileserver address hash
2940       table.
2941
2942     * Avoid tying up fileserver threads with volumes that are being taken
2943       offline.
2944
2945     * Do not set inUse on volumes for non-DAFS other than in fileserver.
2946
2947     * Break origin's callback on target of rename operation.
2948
2949     * Avoid unneeded parent directory link updates during some rename
2950       operations.
2951
2952     * Do not open /dev/console for writing in the fileserver.
2953
2954     * DAFS: avoid spurious restarts when binary restarts are configured.
2955
2956     * Avoid spurious and unneeded calls to sync(), which can slow down the
2957       fileserver.
2958
2959   Microsoft Windows
2960
2961     * Revised SMB QuerySecurityInfo to address issues caused by MS10-020
2962       (http://support.microsoft.com/kb/980232)
2963
2964     * Prevent use of the AFSCache file contents if mapped to a new
2965       address.
2966
2967     * Make fs newcell include behavior compatible with the non-Windows
2968       version.
2969
2970     * Provide a registry option (FreelanceImportCellServDB) to pre-create
2971       mount points in the AFS root for all cells in CellServDB.
2972
2973     * Fix a memory leak in the cm_FreeServerList() routine.
2974
2975     * Reduce privilege when reading registry CellServDB.
2976
2977     * Add support for RPC Pipe Service NetWkstaGetInfo levels needed for
2978       Windows 7.
2979
2980     * Prevent overflow when computing quota percentage in Explorer Shell.
2981       (126846)
2982
2983     * Generate meaningful errors for ACL operations on freelance AFS root.
2984
2985     * Fix error handling on InlineBulkStatus RPCs.
2986
2987     * Show configuration pages for all types of MSI installations.
2988
2989     * Improve freemount AFS root directory handling and operations.
2990
2991     * Properly validate GetVolumeStatus pioctl responses.
2992
2993     * Commit file length changes and dirty buffers when flushing a file.
2994
2995   All UNIX client platforms
2996
2997     * Update version of files for disk cache.
2998
2999     * Do not call afs_FlushVCBs with xvcache lock held, to improve
3000       parallelization.
3001
3002     * Add mariner log messages for creating and removing files.
3003
3004     * Don't hold xvcache lock while creating symlinks, to improve
3005       parallelization.
3006
3007     * Provide -dynroot-sparse mode to not show all cells in CellServDB in
3008       dynroot mode.
3009
3010     * Avoid a potential crash in aklog in linked cell handling.
3011
3012     * Log MTU-caused packet retransmission.
3013
3014     * Prevent crashes caused be fs checkservers while cache is being set
3015       up.
3016
3017     * fs getserverprefs now has a buffer large enough for the default
3018       CellServDB.
3019
3020     * Report server address when logging warnings.
3021
3022     * Avoid panic in GetCapabilities when cell is not known.
3023
3024     * Lock process name and id for advisory lock warnings when possible.
3025
3026     * Handle need for allocating additional Rx packets.
3027
3028     * Properly handle errors from InlineBulkStatus operations.
3029
3030     * Fix errors returned from fcntl() on readonly files locked for write.
3031
3032     * Flush pending changes to the server on LOCK_EX unlock.
3033
3034     * Reflect length changes as a result of callbacks even when file is
3035       open for write.
3036
3037     * Avoid hanging due to error exit when attempting to store a large
3038       file to a non-largefile fileserver.
3039
3040     * Recover from afs_GetVolSlot errors.
3041
3042   FreeBSD
3043
3044     * Bugfixes for kernel VFS and network routines.
3045
3046   IRIX
3047
3048     * Provide makesname().
3049
3050   Linux
3051
3052     * Avoid syscall probes when keyrings are present, by default. (125215)
3053
3054     * Remove "Big Kernel Lock" from VFS operations.
3055
3056     * Use filehandles for all Linux 2.6 versions to avoid need for matched
3057       afsd. (127530)
3058
3059     * Updated RPM packaging.
3060
3061     * Fix dkms configuration provided with RPMs.
3062
3063     * Hold reference on pages during background I/O for cache bypass.
3064
3065     * Fix cache bypass handling of non-largefile fileservers.
3066
3067     * Protect truncate_inode_pages mappings with mutex or semaphore as
3068       needed.
3069
3070     * Fix pagevec use in cache bypass. (127505)
3071
3072     * Updates for 2.6.35
3073
3074   MacOS
3075
3076     * Improve launchd configuration.
3077
3078     * Avoid hanging on recursive cache file lock acquisition when user
3079       notification is enabled.
3080
3081     * Fix and re-enable bulkstat mode.
3082
3083   OpenBSD
3084
3085     * Build updates.
3086
3087   Solaris
3088
3089     * Precluding unmount while AFS is busy.
3090
3091     * Avoid deadlocking when releasing the VFS object.
3092
3093     * Stop network interface poller in kernel on AFS shutdown.
3094
3095     * Avoid issues with lookups on empty directory names. (127356)
3096
3097
3098 OpenAFS 1.5.74 (2010-04-22)
3099
3100   All platforms
3101
3102     * Add "vos setaddrs" command.
3103
3104     * Rx library lock contention avoidance between rx_NewCall and
3105       rx_EndCall.
3106
3107     * Rx library races due to inconsistent use of rx_connection
3108       conn_data_lock to protect the flags field.
3109
3110     * Rx library inconsistent use of RX_CALL_TQ_WAIT which could result in
3111       deadlocks.
3112
3113     * Rx library must signal transmit queue waiters when flushing.
3114
3115     * afsmonitor shows busy counts now.
3116
3117     * afsmonitor displays xstat callback statistics.
3118
3119     * Provide expandgroups for pts mem on a supergroups server.
3120
3121     * Provide supergroup option to liste nested groups during pts mem.
3122
3123   All server platforms
3124
3125     * Avoid volume lock contention during DAFS startup.
3126
3127   Microsoft Windows
3128
3129     * Avoid a race when updating cell vldb server lists that can result in
3130       a crash.
3131
3132     * Avoid a deadlock when managing CM_SCACHESYNC_STOREDATA state
3133       operations for directory objects.
3134
3135     * Add new Windows Application Event log messages for VBUSY,
3136       VRESTARTING, ALL_BUSY, ALL_OFFLINE, and ALL_DOWN.
3137
3138     * Reduce lock contention by waiting for cm_buf_t I/O operations.
3139
3140     * Split the cm_buf_t flags field to separate the flags that are
3141       protected by the cm_buf_t mutex from those protected by the
3142       buf_globalLock.
3143
3144     * In cm_UpdateVolumeLocation, avoid searching for a ".readonly" volume
3145       on a numeric volume name.
3146
3147     * File buffer allocations whose offsets are beyond server EOF should
3148       be locally allocated and zero filled.  The file server should not be
3149       issued a FetchData rpc which is guaranteed to fail.
3150
3151     * Enable integrated logon to work with Windows 7/2008 when user logons
3152       are performed with a non-Domain Kerberos principal.
3153
3154     * Add Protection Error messages to aklog output.
3155
3156   All UNIX client platforms
3157
3158     * Provide a FUSE-interfacing userspace afs client.
3159
3160     * Updates to libuafs userspace cache manager.
3161
3162     * Probe servers using GetCapabilities instead of GetTime, thus
3163       requiring fewer RPCs.
3164
3165     * Fix DNS SRV record handling for cell lookup.
3166
3167   FreeBSD
3168
3169     * Fix sleep/wakeup routines.
3170
3171     * Update for 8.0 release.
3172
3173   Linux
3174
3175     * Handle high memory addresses correctly.
3176
3177   MacOS
3178
3179     * Make 32 bit AFS syscalls work again.
3180
3181     * Work around finder "Duplicate" failure (caused by setting modes on
3182       symlinks).
3183
3184     * Disable bulkstat again (will be re-enabled at or before .75).
3185
3186     * Provide symlink type hints during readdir.
3187
3188
3189 OpenAFS 1.5.73 (2010-03-24)
3190
3191   All systems: Minor bugfixes. New features.
3192
3193   * New functionality:
3194
3195   All systems:
3196
3197     - NAT keepalive support at Rx level.
3198
3199     * Bugfixes:
3200
3201   All systems:
3202
3203     - Corrected server IP address output in vos syncvldb verbose mode.
3204
3205     - Corrected server IP address output for last "yes" host in udebug.
3206
3207     - Corrected SRV record support for canonicalizing cell names.
3208
3209   All UNIX clients:
3210
3211     - Fixed a potential race in Disconnected AFS "remove" support.
3212
3213     - Fix a potential blocking condition in fakestat mode.
3214
3215     - Avoid some errors and stack overflow reports when vos is interrupted.
3216       (33360,125535)
3217
3218     - Clean up several minor memory leaks.
3219
3220     - If a large file is stored to a non-largefile fileserver, avoid
3221       a potential deadlock.
3222
3223     - Increase maximum number of sysnames to 32.
3224
3225     - Readd fs mariner "storing" message, missing since AFS 3.3.
3226
3227     - Attempt timeouts on AFSDB lookups in userspace.
3228
3229     - Avoid interrupting writes due to an idle deadtime timeout.
3230
3231   All server platforms:
3232
3233     - Properly notify only affected hosts for volume callbacks. (126497)
3234
3235     - Allow volumes with trashed root directory to be recovered. (94658)
3236
3237     - Hold lock in file and volservers when traversing partition list.
3238
3239     - Use finer-grained locking in DAFS: volume, instead of partition locks.
3240
3241     - Schedule all DAFS salvages via FSSYNC.
3242
3243     - Avoid stale ptserver credential caching issue on keyfile update.
3244
3245     - Improve callback table overflow handling. (126451)
3246
3247     - Preclude deadlocks on when attempting to save DAFS state.
3248
3249     - Avoid races deleting hosts. (126454)
3250
3251     - Improve salvage speed for DAFS (124488)
3252
3253     - The bosserver now handles SIGTERM.
3254
3255   Microsoft Windows
3256
3257     - Prevent the Explorer Shell extension from crashing if symlink
3258       creation failed.  (126406)
3259
3260     - A Rx level NAT ping has been implemented. A registry value enables.
3261
3262     - Adds krb5 error message translation to aklog, afscreds,
3263       afslogon.dll, the network identity manager afs provider and
3264       translate_et.
3265
3266     - Default mode bit settings for file and directory creation are now
3267       provided, and can be configured.
3268
3269     - An SMB request trace facility is provided and can be enabled for
3270       debugging.
3271
3272   AIX:
3273
3274     - Clean up properly on mount failure.
3275
3276     - Add entry to /etc/vfs to allow umount to work.
3277
3278   FreeBSD:
3279
3280     - Additional work to support FreeBSD 8-current.
3281
3282   IRIX:
3283
3284     - Fix build issues with library order.
3285
3286   Linux:
3287
3288     - Fix s390 support conflict with executable stack patches.
3289
3290     - Don't count root's AFS session keyrings against quota.
3291
3292     - Correct dkms support in RPM config file.
3293
3294     - Keyring destructor now properly cleans up all tokens.
3295
3296     - Build again on old 2.6 kernels.
3297
3298     - Avoid GLOCK leak when updating CellServDB in-core.
3299
3300     - Fix byte-range lock handling.
3301
3302     - Attempt to deal with bdi issues. (126514)
3303
3304   MacOS:
3305
3306     - Some FSEvents hinting for authentication events now done. (23781)
3307
3308     - Update uninstaller. (125634)
3309
3310     - Rewrite afssettings and fstab code to avoid licensing issue with APSL.
3311
3312     - Growl client for user monitoring of AFS events included.
3313
3314     - Properly support insert-only dropboxes.
3315
3316     - Add bulkstat support.
3317
3318     - Include support for moving in Finder across mount points.
3319
3320     - Preferences Pane includes support for Kerberos 5 ticket renewal.
3321
3322   OpenBSD:
3323
3324     - Some support for OpenBSD 4.7.
3325
3326
3327 OpenAFS 1.5.72 (2010-02-15)
3328
3329   All platforms
3330
3331     * Provide internationalization support in com_err.
3332
3333     * Fix array length checking to avoid crashes when checking for a
3334       volume type based on name in vos.
3335
3336   All server platforms
3337
3338     * Provide backward compatible "-f" flag to salvager for force mode.
3339
3340   Microsoft Windows
3341
3342     * Restore use of DNS AFSDB and SRV records by kaserver clients.
3343
3344   All UNIX client platforms
3345
3346     * Fix client cache file truncation to not lose chunks when truncating
3347       a large file.
3348
3349     * Ensure a cache writeback hook is installed in the client (bug from
3350       1.5.71).
3351
3352     * Avoid spurious free memory warnings during clean shutdown.
3353
3354     * Fakestat mode avoids AFSDB lookups.
3355
3356     * "fs storebehind" now correctly reports errors on readonly volumes.
3357
3358     * Additional documentation for "fs getcacheparms"
3359
3360     * Forced new uuid generation with "fs uuid -generate" now works
3361       enforced permission correctly.
3362
3363   MacOS
3364
3365     * Add optimized Rx event handler in kernel.
3366
3367     * Installer now allows installing an older version.
3368
3369     * Panic decoder can now deal with MacOS 10.5 again.
3370
3371     * MacOS ._ files are now correctly not looked up as cellnames.
3372
3373   Linux
3374
3375     * To deal with SELinux file labeling, try cache accesses with current
3376       credentials in event of failure.
3377
3378     * Rx XDR encoding bug on i386 Linux is fixed (bug introduced in
3379       1.5.71).
3380
3381   IRIX
3382
3383     * Code compilation fixes.
3384
3385   OpenBSD
3386
3387     * Update for OpenBSD 4.6.
3388
3389
3390 OpenAFS 1.5.69 (2010-01-19)
3391
3392   All platforms
3393
3394     * Configuration of BOSserver no longer defaults to weekly restarts
3395       enabled.
3396
3397     * Provide BOS restricted mode by default.
3398
3399     * Add support for "vos endtrans" command.
3400
3401     * Default to providing full output from vos listvol.
3402
3403     * Correct additional-address tracking in the fileserver.
3404
3405     * Improve Rx performance by not unnecessarily dropping and reacquiring
3406       call locks in read and write processes.
3407
3408     * Avoid crashes when monitoring volserver transactions across
3409       potential transaction garbage collection.
3410
3411     * Numerous warning fixes.
3412
3413   All server platforms
3414
3415     * Avoid saving fileserver state in demand attach fileserver when
3416       panicing.
3417
3418     * Demand attach fileserver allows other callers to schedule salvages.
3419
3420     * Demand attach "bos salvage" now works correctly with restricted
3421       mode.
3422
3423   Microsoft Windows:
3424
3425     * Numerous changes to the client-internal btree directory handling to
3426       prevent errors.
3427
3428     * fs examine reports owner and group ids as signed values (PTS groups
3429       are negative).
3430
3431     * Preclude corruption due to races writing to smb buffers.
3432
3433     * Allow MTU settings in registry to be used.
3434
3435     * Apply MTU to both send and receive sizes.
3436
3437   All UNIX client platforms
3438
3439     * Avoid double-freeing Rx call structure if reading a response from
3440       the file server results in a short read.
3441
3442     * Handle negative lengths in FetchStatus results correctly.
3443
3444     * Properly clean up allocated memory at shutdown.
3445
3446     * Default to AFSDB compiled into the cache manager.
3447
3448     * Avoid inadvertant disclosure of stat() information to clients not so
3449       entitled.
3450
3451     * Correct a bug with AFSDB lookups introduced with SRV record support.
3452
3453   MacOS
3454
3455     * Install kernel panic processing tool in /Library/OpenAFS/Tools.
3456
3457     * Include debugging symbols for kernel extension in additional package.
3458
3459     * Support "Application Firewall" users.
3460
3461     * Avoid ._cellname AFSDB lookups.
3462
3463     * Compile preferences pane as a universal binary.
3464
3465   Linux
3466
3467     * Use splice to speed up storing files.
3468
3469     * When using memcache, avoid duplicating work in readpages.
3470
3471     * Use dget_parent to safely find an inode's parent.
3472
3473     * Disable access time updates in our superblock.
3474
3475     * Avoid crashing doing writeback if no credentials were stashed at
3476       file open.
3477
3478     * Simplify keyring support.
3479
3480     * Properly clean up vcache in event of failed mount.
3481
3482   FreeBSD
3483
3484     * Update for current FreeBSD 8.
3485
3486   Solaris
3487
3488     * Abstractly manipulate groups as now required.
3489
3490     * Abstractly access time instead of using lbolt directly.
3491
3492
3493 OpenAFS 1.5.68 (2009-12-08)
3494
3495   All platforms
3496
3497     * aklog now attempts to convert non-AFS errors to human-readable
3498       strings.
3499
3500     * Make stack not executable when compiling assembler source with GCC.
3501
3502     * Numerous source warning cleanups and code reorganization.
3503
3504   All server platforms
3505
3506     * Compute midnight for volume statistics calculation from local time.
3507
3508     * Salvager now orphans duplicate special inodes when running to allow
3509       recovery in event of a problem, instead of simply ignoring the
3510       issue.
3511
3512     * Support to ensure a server panic attempt leaves a core and thus
3513       restarts in a timely manner, rather than potentially hanging. Use
3514       panic to attempt cleanup before leaving a core when possible.
3515
3516     * Volume sync data reported during bulkstatus is now set correctly.
3517
3518     * Provide better tuning for fileserver file descriptor caching.
3519
3520     * Allow more than 128 threads in fileserver by modifying host
3521       structure in-use tracking.
3522
3523     * Avoid crashes getting volume server status during transaction
3524       cleanup.
3525
3526     * Improved logging of offline volume conditions.
3527
3528     * Correct volume statistics when cloning a volume.
3529
3530     * Avoid referencing host structures in the fileserver which are marked
3531       for deletion.
3532
3533     * Demand attach fileserver corrections to avoid coring during an
3534       aborted startup.
3535
3536     * host array bounds checking corrections to avoid buffer overflow.
3537
3538     * Handle special inodes correctly when promoting an inode fileserver
3539       readonly volume to read-write.
3540
3541   Microsoft Windows
3542
3543     * Set the DOS Readonly attribute on a file/directory whenever the unix
3544       mode combined with the mask 0200 is true.  Previously there was a
3545       discrepency between the mask used for testing for readonly behavior
3546       and that used for setting the attribute.
3547
3548     * Disable AFSVolSync based .readonly "whole-volume callback" support
3549       because the all file servers prior to 1.5.67 (and perhaps 1.4.12) do
3550       not properly assign a value to the AFSVolSync structure in bulk
3551       status RPC responses.
3552
3553     * Improve the error output from aklog to output the value from krb5
3554       error_message() if the afs_com_err output indicates an unknown
3555       value.
3556
3557     * Convert VBUSY and VRESTARTING to CM_ERROR_ALLBUSY and do not permit
3558       them to be exposed to the smb redirector.
3559
3560     * Convert STATUS_TIMEOUT responses to STATUS_IO_TIMEOUT to avoid
3561       confusion within the smb redirector.
3562
3563     * Fix the byte order assigned to port numbers associated with AFSDB
3564       record lookups.  They must be network byte order not host byte
3565       order.
3566
3567     * Add dynamic server ranking based on RPC round trip time
3568       measurements.
3569
3570   All UNIX client platforms
3571
3572     * Additional shutdown-time memory leaks removed.
3573
3574     * Improved logging of resource contention.
3575
3576     * Provide dumping for Rx debug packet tracking support in source.
3577
3578     * Update afscp test client to build, and provide an unlock client.
3579
3580     * Client buffers for directory parsing can now be allocated beyond the
3581       fixed set formerly provided.
3582
3583     * Work around race condition when manipulating read-only volume
3584       callbacks.
3585
3586     * Bugfixes to get PAG value pioctl.
3587
3588     * Bugfixes to SRV record support.
3589
3590   Linux
3591
3592     * Path MTU tracking code cleanup.
3593
3594     * Avoid an oops due to racing with vcache recycling thread.
3595
3596     * Changes to keyring PAG handling: for sufficiently new kernels, use
3597       only keyring-based PAGs, and disable group PAGs entirely.
3598
3599     * Updates to the kernel page cache interface: writing pages will now
3600       not spuriously leak page locks, and will avoid requiring duplicate
3601       work.
3602
3603     * Credential references are now tracked using native atomic counters.
3604
3605     * Kernel mutex/semaphore lock ordering fix to avoid deadlocks.
3606
3607     * Manipulate disk cache with credentials used to initialize it, to
3608       avoid security issues.
3609
3610   MacOS
3611
3612     * Fix fstrace message catalog location.
3613
3614     * Fix kernel fstrace logging.
3615
3616
3617 OpenAFS 1.5.66 (2009-10-25)
3618
3619   All platforms
3620
3621     * Avoid calling exit() in library code.
3622
3623     * Add rx window size and peer timeout tuning APIs.
3624
3625     * Correct rx peer timeout handling to disallow 0ms timeouts.
3626
3627     * Correct calculation of rx RTT by disregarding retransmitted packets.
3628
3629     * vos manpages updated to reflect changes in recent versions.
3630
3631     * GNU-style long options (e.g. --cell) are now supported in all
3632       commands.
3633
3634     * fs listacl can now print a command to recreate the current ACL.
3635
3636   All server platforms
3637
3638     * Fix a race on transaction objects in the volserver which can cause a
3639       crash.
3640
3641     * Avoid destroying and setting to NULL the callback connection when it
3642       could still be being used.
3643
3644     * Correct unlink handling in salvager.
3645
3646     * Improve error messages due to I/O errors in the volserver.
3647
3648     * Correct an issue which caused converted RO to RW volumes on namei
3649       fileservers to not come online immediately.
3650
3651   Microsoft Windows
3652
3653     * Official support for Windows 7 and Server 2008 R2.
3654
3655     * Prevent a file server bug (FetchData returning an invalid length
3656       instead of zero) from causing an "unexpected network error" when
3657       writing to files.
3658
3659     * Promote DNS SRV records as superior to DNS AFSDB records.  Support
3660       arbitrary port numbers for vldb servers.
3661
3662     * Add AFSVolSync based .readonly "whole-volume callback" support.
3663       With this functionality, multiple objects from a .readonly volume
3664       can have their status validated by issuing a single
3665       RXAFS_FetchStatus RPC.
3666
3667     * Remove drive mapping functionality and service start/stop from
3668       afscreds.exe.
3669
3670     * Remove drive mapping functionality from afs_config.exe.
3671
3672     * Use {HKLM,HKCU}\SOFTWARE\OpenAFS\Client DWORD "ShowMountTab" to
3673       restore access to drive mapping functionality in afscreds.exe and
3674       afs_config.exe.
3675
3676     * Adjust SMB error return codes to avoid returning STATUS_TIMEOUT
3677       which results in the SMB redirector disconnecting.
3678
3679     * Network Identity Manager OpenAFS Provider now provides its own "AFS
3680       lock" notification icon to report the status of "have tokens, have
3681       no tokens, service not started, service started but inaccessible".
3682       Hovering over the icon lists the cells for which tokens exist (if
3683       any) and the OpenAFS version number.  Double-clicking executes the
3684       Network Identity Manager default action.
3685
3686     * Prevent pioctl calls from retrying indefinitely when a sharing
3687       violation error occurs.
3688
3689   All UNIX client platforms
3690
3691     * Correct a condition which could discard the error from initializing
3692       a fetch request.
3693
3694     * Avoid using invalid references to afs_Conn connection structures,
3695       and thus potentially producing invalid data when a retry is needed.
3696
3697     * SRV records are now supported for discovering AFS servers.
3698
3699   Linux
3700
3701     * Correct writepage behavior.
3702
3703     * Fix error code handling in the writepage code.
3704
3705     * Avoid leaking page locks, which could potentially hang a machine.
3706
3707   MacOS X
3708
3709     * Preferences Pane improvements.
3710
3711   HP-UX
3712
3713     * Avoiding attempting to handle critical signals in servers, so that
3714       core file handling works correctly.
3715
3716
3717 OpenAFS 1.5.65 (2009-10-06)
3718
3719   All platforms
3720
3721     * Code compilation warning fixes, to enable better finding and
3722       tracking bugs.
3723
3724     * Provide configure-time switch to enable code warning compilation.
3725
3726   All server platforms
3727
3728     * Demand-attach fileserver now makes volume LRU list operations
3729       exclusive operations to avoid races during adding to the list.
3730
3731     * Fileservers now avoid potential "negative length" fetches.
3732
3733     * A leak in host tracking objects in the fileserver has been fixed.
3734
3735     * Salvager now unlinks all files by full path, to deal with the change
3736       to not chdir for core file tracking.
3737
3738     * Salvager avoids asserting if the volume header is unreadable.
3739
3740     * Demand-attach fileserver puts back volume references from fssync
3741       handlers when done.
3742
3743   Microsoft Windows
3744
3745     * Improved service response to suspend and shutdown event
3746       notifications.
3747
3748     * Avoid a bug in the file server that can result in an invalid length
3749       being returned as part of a fetch data response if the client
3750       attempts to read beyond the length of the file.
3751
3752     * Do not publish a default stream object for directories and mount
3753       point objects.  This was impacting the ability of some Windows XP
3754       systems to save roaming profiles.
3755
3756   All UNIX client platforms
3757
3758     * A bug which could cause erroneous handling of lengths on data reads
3759       has been fixed.
3760
3761     * A bug where erroneous length returns from the fileserver could
3762       result in a false error has been fixed.
3763
3764   Linux
3765
3766     * Background page copies are now supported for enhanced disk cache
3767       read performance.
3768
3769     * Blocking readahead is supported in readpages() to reduce overhead.
3770
3771     * Use readpage() instead of read() to access cache data to avail disk
3772       cache users of the kernel backing cache for improved performance.
3773
3774     * Minimize credential handling for improved performance.
3775
3776   MacOS X
3777
3778     * Preferences Pane cleanup.
3779
3780   Solaris
3781
3782     * Provide a fs_pathconf method with sensible defaults.
3783
3784     * Provide a _PC_FILESIZEBITS method to fix some NFS translator
3785       consumers.
3786
3787
3788 OpenAFS 1.5.64 (2009-09-22)
3789
3790   All server platforms
3791
3792     * The demand attach fileserver now puts back volume references gotten
3793       via the fssync interface.
3794
3795     * The demand attach fileserver had a structure reference error, which
3796       has been correected.
3797
3798   Microsoft Windows
3799
3800     * Restores Windows 2000 compatibility.
3801
3802     * Fixes a data consistency error between the output of NetWkstaGetInfo
3803       and NetServerGetInfo RPCs, specify the Lan workstation group name
3804       "AFS", and report server name as "AFS" instead of "\\AFS" when the
3805       caller asks for "\\AFS".
3806
3807     * Enables executables to be run from \\AFS on Windows 7.  Returns
3808       "Name not found" instead of "File not found" when a directory or
3809       file name cannot be found.  This avoids loader errors when system
3810       dlls cannot be located in the executable directory.
3811
3812     * Prevents cache manager from marking the file server "down" when the
3813       data returned in response to either RXAFS_FetchData64 or
3814       RXAFS_StoreData64 is invalid.
3815
3816     * Adds pioctl data validation to the AFS Explorer Shell extension.
3817
3818   All UNIX client platforms
3819
3820     * A bug which could cause a kernel panic in 1.5.63 has been corrected.
3821       This would manifest as a GetDCache panic or oops.
3822
3823   Linux
3824
3825     * aklog -setpag works again with recent kernels when keyring is in
3826       use.
3827
3828   MacOS
3829
3830     * When Fast User Switch is in use, AFS login is now handled correctly
3831       by the integration tool included with the preferences pane.
3832
3833     * Several packaging bugs have been corrected.
3834
3835
3836 OpenAFS 1.5.63 (2009-09-11)
3837
3838   All platforms
3839
3840     * The restorevol command is now documented and installed as a user
3841       command.
3842
3843     * The uss command now properly translates vldb entries to its expected
3844       format when handling them in all cases.
3845
3846     * Documentation now refers to Kerberos instead of kaserver.
3847
3848   All server platforms
3849
3850     * bosserver now handles BosConfig.new when restarting, allowing
3851       configuration to be replaced at restart time rather than with bos
3852       delete and bos create.  Documentation is updated to reflect this.
3853
3854     * The demand attach fileservice not longer potentially hangs trying to
3855       terminate demand-salvages which have already exited.
3856
3857     * The demand attach fileservice has been modified to avoid spurious
3858       'SYNC_putRes: write failed' warnings when some protocol messages
3859       cannot be acknowledged due to the sender terminating the connection.
3860
3861     * In the event of failure to contact the vlserver or ptserver, the
3862       fileserver will not exit and trigger a forced salvage. It will
3863       continue to try in the background to contact the needed services.
3864
3865     * The salvager can now repair certain cases of a damamged vnode index.
3866
3867     * The accessDate metadata for a volume is now updated correctly.
3868
3869   Microsoft Windows
3870
3871     * CRITICAL: Some applications for example those based on Cygwin were
3872       unable to access data stored in the AFS name space.  Explorer Shell
3873       also experienced inconsistent behavior.  This is fixed.
3874
3875     * CRITICAL: Multiple AFS pioctl requests issued nearly simultaneously
3876       by applications could result in pioctl responses being received by
3877       the wrong requester.  This in turn could result in application
3878       crashes.  symlink.exe, fs.exe, afslogon.dll, afscreds.exe, and the
3879       netidmgr afscred.dll plugin were all affected.
3880
3881     * Some XP machines running 1.5.62 had trouble saving roaming profile
3882       data.  This is fixed.
3883
3884     * Integrated Logon (afslogon.dll) did not function with domain
3885       specific configurations.
3886
3887     * Ensure that access denied and over quota errors experienced while
3888       storing data to the file server do not result in on-going retry
3889       attempts.
3890
3891   All UNIX client platforms
3892
3893     * Except on Solaris and AIX, the compiler may now be overriden at
3894       configure time by setting the CC environment variable.
3895
3896     * afsd now properly deals with large cache partitions.
3897
3898   FreeBSD
3899
3900     * Build shared libafsauthent and libafsrpc.
3901
3902   Linux
3903
3904     * Kernel module DKMS support now installs an unstripped module to
3905       allow debugging information to be collected.
3906
3907   MacOS
3908
3909     * Preferences pane properly updates token information.
3910
3911   MacOS 10.6
3912
3913     * klog will now properly handle passwords of 8 or fewer characters
3914       with an AFS string to key on hosts able to run 64 bit binaries.
3915
3916     * A panic at AFS shutdown due to "NO PCB" on a udp_lock has been
3917       addressed.
3918
3919     * The panic decoder script included in the source now properly handles
3920       32 and 64 bit panics.
3921
3922   NetBSD
3923
3924     * Avoid defining AFS_KERBEROS_ENV globally as it creates a circular
3925       dependency.
3926
3927     * Build shared libafsauthent and libafsrpc.
3928
3929   OpenBSD
3930
3931     * Build shared libafsauthent and libafsrpc.
3932
3933
3934 OpenAFS 1.5.62 (2009-08-28)
3935
3936   All platforms
3937
3938     * Numerous invisible changes to improve code maintainability,
3939       portability and enhanceability.
3940
3941   Microsoft Windows
3942
3943     * CRITICAL: Fixes two errors that can result in data loss when storing
3944       data to the file server.
3945       1. Failure to Store Portions of Unaligned Writes
3946       2. Failure to Store Data to File Servers Lacking Large File Support
3947       Read the announcement for more details:
3948         http://www.openafs.org/pipermail/openafs-announce/2009/000305.html
3949
3950     * CRITICAL: The cache manager daemon thread could terminate when the
3951       machine enters suspend mode.  This daemon thread performs the
3952       background check of down servers, offline volumes, callback
3953       expirations, etc.
3954
3955     * CRITICAL: Integrated Logon (afslogon.dll) was terminating
3956       unexpectedly.  Error checking has been improved and NULL pointer
3957       dereferences after Lsa API calls fail have been eliminated.
3958
3959     * For the first time, the OpenAFS SMB Server supports the DCE RPC
3960       services SRVSVC and WKSSVC.  Browsing \\AFS with the Explorer Shell
3961       or NET VIEW will now be faster and provide additional functionality.
3962       No longer will cell names longer than 12 characters be truncated.
3963
3964     * Improvements to DFS Referral request processing have been
3965       implemented.
3966
3967     * Unnecessary DNS lookups of share names are avoided improving
3968       performance.
3969
3970   All UNIX client platforms
3971
3972     * Non-Kerberos PAM modules work correctly again.
3973
3974   MacOS X
3975
3976     * MacOS 10.6 (Snowleopard) is now supported, both 32 and 64 bit mode.
3977
3978     * Updates to the AFSCommander preferences pane.
3979
3980     * Installer now permits cell names with dashes.
3981
3982
3983 OpenAFS 1.5.61 (2009-08-06)
3984
3985   All platforms
3986
3987     * Correct another race condition in the Rx library that could result
3988       in an unexpected panic while freeing the Rx call iovq.
3989
3990     * rx packet resend and data packets sent counts were incorrect.
3991
3992     * fs setquota, fs setcachesize, vos setfields, and vos create now
3993       accept human readable orders of magnitude. (K, M, G)
3994
3995     * fs listquota fixed to permit large quota sizes to be displayed.
3996
3997     * Correct documentation of bosserver permissions requirements.
3998
3999     * Modify vlserver to avoid potentially corrupting the database through
4000       volume id reuse.
4001
4002     * Generalized support for fast Rx timeout due to network
4003       down/unreachable.
4004
4005   All server platforms
4006
4007     * Allow audit logs to be sent via sys5 IPC message queues instead of
4008       logged directly.
4009
4010   Microsoft Windows
4011
4012     * If a file server becomes inaccessible while the cache manager has
4013       dirty buffers to write, the afsd_service buf_IncrSync thread can
4014       attempt to use 100% of the cpu.
4015
4016     * Fix "fs newcell" which was broken in 1.5.60.
4017
4018     * Do not attempt to synchronize dirty buffers if the associated volume
4019       is known to be unavailable.
4020
4021     * Modify behavior of a Freelance mountpoint target that does not
4022       specify a cell.  Instead of assuming the target volume is in the
4023       Freelance.Local cell, use the workstation "Cell" specified in the
4024       registry. A mountpoint target of "#root.cell." will now mean the
4025       root.cell volume in the workstation cell for the current session.
4026       If the workstation cell changes from "athena.mit.edu" to
4027       "andrew.cmu.edu", the referenced volume will also change without
4028       requiring that the mount point targets be altered.
4029
4030     * Add cm_FindServerByUuid().  Re-implement RXAFS_InitCallBackState3()
4031       to permit the server Uuid to be used to lookup the server object and
4032       from that determine the cell.  This permits callbacks that are
4033       received from alternate addresses to be processed with a known
4034       server object.  Previously a request from an unknown server would
4035       clear all callbacks from all cells.
4036
4037     * Fix a bug that prevented optimal performance when using a non-zero
4038       value for 'daemonCheckVolCBInterval'.  As a reminder, when
4039       "daemonCheckVolCBInterval" is set to a non-zero value, all .readonly
4040       volume callbacks are automatically renewed 90 minutes before their
4041 &nbs