+TBA
+ * bug fixes
+ - LRU counters were broken, causing constant lock purge (433, 432)
+ - garbage on read from stripes with failed OSTs (441)
+ - mark OSCs as active before reconnecting during recovery (438)
+ - lov_enqueue and lov_cancel need to handle inactive OSTs (403)
+ - lfind did not preserve OST order in output (443)
+ - symlinks cause hung clients, incorrect data (439)
+ - stop dereferencing request after dropping refcount (457)
+ - don't LASSERT(spin_is_locked) on non-SMP (455)
+ - fixes for many rename() bugs
+
+2002-12-02 Andreas Dilger <adilger@clusterfs.com>
+ * version v0_5_18
+ * bug fixes
+ - fix many simultaneous client startup (392)
+ - fix dentry->d_it clobbering
+ - credentials weren't being shipped for readdir/getattr operations
+ - remove invalid assertions triggered during some concurrent MD
+ updates
+ - proper Lustre versions added (336, 389)
+ - fix memory leak for create error case (398)
+ - fix LOV locking bug that would get cli/srv out of sync
+ - fix echo client over LOV (409)
+ - fix dbench 2, extN refcount problem (170, 258, 356, 418)
+ - fix double-O_EXCL intent crash (424)
+ - avoid sending multiple lock CANCELs (352)
+ * Features
+ - MDS can do multi-client recovery (modulo bugs in new code)
+ * Documentation
+ - many updates, edits, cleanups
+
+2002-11-18 Phil Schwan <phil@clusterfs.com>
+ * version v0_5_17
+ * bug fixes
+ - fix null d_it dereference (346)
+ - fix full OST/dbench hang (333)
+ - fix permission problem with file removal (286)
+ - fix removal of OSCs from LOV when they fail
+ - fix NULL deref during bulk timeout (214)
+ - fix problems related to multiple filesystems on one MDS (241)
+ - fixed serious subtle metadata locking bugs
+ - free locks on clients when inodes are removed due to memory
+ pressure (201)
+ - fix inode pointer in lock data (285)
+ - partial support for multiple MDS on a single host (241)
+ - data locks weren't cancelled at clear_inode time (290, 311)
+ - intent locks could lead to unbounded lock growth (205)
+ - added a maximum lock count, an LRU list, and a flusher
+ - fix multiple rename (365)
+ - properly abstracted the echo client
+ - OSC locked 1 byte too many; fixed
+ - rewrote brw callback code:
+ - fixed recovery bugs related to LOVs (306)
+ - fixed too-many-pages-in-one-write crash (191)
+ - fixed (again) crash in sync_io_timeout (214)
+ - probably fixed callback-related race (385)
+ * protocol change
+ - Add capability to MDS protocol
+ - LDLM cancellations and callbacks on different portals
+
+2002-10-28 Andreas Dilger <adilger@clusterfs.com>
+ * version v0_5_16
+ * bug fixes:
+ - limit client IOV size to PTL_MD_MAX_IOV (611336, 191)
+ - defer open object destruction to close time (601981, 138)
+ - open/close OST file handle in obdo (OBD_MD_FLHANDLE) (601981, 138)
+ - move LDLM_ENQUEUE/CONVERT back to MDS portal (625069)
+ - abstract ll_lookup2, fix ll_revalidate2 to use abstraction (256)
+ - don't call obd_setattr in ll_file_release for destroyed objects
+ * protocol change to lustre_msg: move |version| and add |flags|
+ * protocol change to osc_punch: "start" in "o_size", "end" in "o_blocks"
+ * lock replay: for LDLM_FL_REPLAY trust client to do right thing
+ * added replay of create, unlink, link and rename operations during
+ MDS failover; recovery should be much more robust now
+ * remove failed OSCs from LOVs (only lov_create uses this so far)
+ * the lustre-HOWTO was brought (more) up to date (582544)
+
+2002-10-23 Phil Schwan <phil@clusterfs.com>
+ * version v0_5_15
+ * bug fixes:
+ - in-use dentries weren't being reused properly (617851)
+ - prevent multiple LDLM setup (599178)
+ - fix LOV size calculations for truncate (617853)
+ - fix client handling of MDS intent errors (POSIX)
+ - fix permission bug in lovstripe.c test (624321)
+ - fix MDS thread deadlock - move LDLM handler to DLM portal (625069)
+ - truncate past end of file could corrupt data
+ - proper cleanup after timeouts, crashes, etc (592524, 550815)
+ - a race in recovery could return ETIMEDOUT to apps (623947)
+ - building outside the source directory was fixed
+ * the lustre-HOWTO was brought (more) up to date (582544)
+ * major progress was made on recovery functionality
+
+2002-10-10 Phil Schwan <phil@clusterfs.com>
+ * version v0_5_14
+ * bug fixes:
+ - recovery deadlock fix
+ - rm -rf causes LBUG fix (617817)
+ - file open by multiple tasks fix (618962)
+ - directory permissions bugs (602707 and 620007)
+ - journal_stop fixed with locking (611313)
+ - O_APPEND failures resolved (618273, perhaps 614459)
+ - lconf PATH fix (619770)
+ - IA64 build fix (621450)
+ - RPC buffer sizes scale with amount of memory
+
+2002-10-01 Phil Schwan <phil@clusterfs.com>
+ * version v0_5_13
+ * bug fixes:
+ - locks would be cancelled without throwing away data pages,
+ resulting in inconsistent data (605627)
+ - inode attributes were not always being refreshed (605627, 612449)
+ - lconf now continues to cleanup after lctl reports an error
+ - MDS now enforces user permissions (602707)
+ - lprocfs cleanup fixed, but not yet enabled (614157)
+ - fixed infinite server hang, should a client not respond to an AST
+ - avoid going into recovery if user calls readlink() with a buffer
+ that's too small (613941)
+ - AST RPCs no longer require replies (614867) -- this may be changed
+ - don't crash server if client sends an IOV that's too big (611336)
+ - fixed lock conversion deadlock (611892)
+ - fixed the following of symlinks (614622)
+ * recovery: the server can remove locks from a client that dies, other
+ clients can make progress
+ * more extN patch fixes
+ * compile-time configurable ptlrpc buffer allocations
+ * documentation
+ - collaborative read cache document
+ - Lustre Lite Performance CDR document-in-progress