+tbd
+ * version v0_8
+ * bug fixes
+ - orphans are moved into the PENDING directory for possible recovery
+ - replayed opens now open by fid for orphan/rename safety (1042)
+ - last close of an orphan inode generates a transno (683)
+ - chdir() and mount() now pin the directory entry (1020)
+ - avoid CERROR in normal ll_setattr_raw() error case (1500)
+ - discard very old requests without processing them (1502)
+ - remove some common, well-understood CERRORs (1505)
+ - require O_DIRECT I/O to be page-sized to workaround IA64 crash (1609)
+ - clear "grant" flags in OST replies until OST grant code lands (1644)
+ - fix read performance by not clobbering i_blksize on client (1598)
+ - fix __ldlm_handle2lock oops by not dereferencing lock after PUT (1625)
+ - make LRU size a /proc tunable, clears locks when reduced (707)
+ - fix some lprocfs rot that prevented ptlbd from loading (1732)
+ - server locks take references on exports now (1558)
+ - build fixes for 2.4.20-rh trees (1663)
+ - return an error from lov_create if all OSCs are inactive (1751)
+ - fix import levels when a reconnect happens without a timeout (1597)
+ - exit early from mds_open if we get a lookup error (1749)
+ - partial page read at EOF wouldn't wait for disk before sending (1642)
+ - avoid NULL deref in obdfilter when reading page past EOF (1592)
+ - bug 56: POSIX utime.4 -EPERM on FIFO not owned by user
+
+2003-06-15 Phil Schwan <phil@clusterfs.com>
+ * version v0_7
+ * bug fixes
+ - imports and exports cleanup too early, need refcounts (349, 879, 1045)
+ - per-import/export recovery handling (958, 931, 959)
+ - multiple last-rcvd slots, for serving multiple FSes (949)
+ - connections are again shared between multiple imp/exports (963, 964)
+ - "umount -f" would hang if any requests needed to be sent (393, 978)
+ - avoid pinning large req buffer by copying for queued messages (989)
+ - add "uuid" to "lctl device" command to help upcalls (991)
+ - "open" RPCs with transnos would confuse recovery counters (1037)
+ - do proper endian conversion of all wire messages (288, 340, 891)
+ - remove OST bulk get LBUGs, fix ost_brw_write cleanup (1126)
+ - call waiting locks callback from LDLM recovery thread (1127, 1151)
+ - fix ptlrpc_connection leak in target_handle_connect (1174)
+ - fix import refcounting bug in OST and MDS cleanup (1134)
+ - if an invalid-at-open-time OSC returned before close(), LBUG (1150)
+ - fix very unlikely obd_types race condition (501)
+ - remove osc_open hack for echo_client (1187)
+ - we leaked exports/dlmimps for forcibly disconnected clients (1143)
+ - a failure in read_inode2 leads to deadlock (1139)
+ - cancel ack-locks as soon as transaction is committed (1072)
+ - fix major leaks and crashes in the bulk I/O path (937, 1057)
+ - make sure to commitrw after any preprw to avoid deadlock (1162)
+ - failing to execute a file in a lustre FS would lock inode (1203)
+ - small DEBUG_REQ fix to avoid dereferencing a NULL (1227)
+ - don't ASSERT while cleaning up an incompletely-setup obd (1248)
+ - obd_uuid2tgt would walk off the end of the list (1255)
+ - on IA64 the osc would give portals incorrect bulk size (1258)
+ - fix debug daemon ioctl interface; allows daemon on ia64 (1274)
+ - fix lock inversion caused by new llite matching code (1282)
+ - limit the number of dirty pages on a client to 10MB (1286)
+ - timed out locks were not being corrected cancelled (1289)
+ - fix O_DIRECT above 4GB on IA-32 (1292)
+ * major user-visible changes
+ - fail out/fail over policy now controlled by the upcall (993)
+ * protocol changes
+ - add OBD_PING to check server availability and failure (954)
+ - lustre messages are now sent in sending host order (288, 340, 891)
+ - add eadatalen to MDS getattr reply (340)
+ - OST read replies may contain second buffer, with per-page status (593)
+
+2003-03-11 Phil Schwan <phil@clusterfs.com>
+ * version v0_6
+ * bug fixes
+ - LDLM_DEBUG macro fix, for gcc 3.2 (850)
+ - failed open()s could cause deadlock; fixed (867, 869)
+ - stop cancelling OST locks when files are closed (481)
+ - overlapping XID spaces caused network corruption (851, 853)
+ - fix unsafe fsfilt counter arithmetic; change to atomic_t
+ - setattr_raw added, to do single-RPC, server-side setattrs
+ - lmc/lconf syntax change for OST UUIDs
+ - fix crashy race condition between ptlrpc_free_req and osc_close
+ - don't use request in mdc_enqueue if we hit a timeout (889)
+ - don't set the inode i_size for regular files from the MDS (896)
+ - handle out of order completion AST (842)
+ - don't LBUG if a lock request times out after receiving AST (913)
+ - avoid d_rehash race in ll_find_alias by rehashing inside dcache_lock
+ - if a bad lock AST arrives, send an error instead of dropping entirely
+ - return 0 from revalidate2 if ll_intent_lock returns -EINTR (912)
+ - fix leak in bulk IO when only partially completed (899, 900, 926)
+ - fix O_DIRECT for ia64 (55)
+ - (almost) eliminate Lustre-kernel-thread effects on load average (722)
+ - C-z after timeout could hang a process forever; fixed (977)
+ * Features
+ - client-side I/O cache (678, 924, 929, 941, 970)
+ * protocol changes
+ - READPAGE and SETATTRs which don't take server-side locks get
+ their own portal
+
+2003-02-11 Phil Schwan <phil@clusterfs.com>
+ * version v0_5_20
+ * bug fixes
+ - Fix ldlm_lock_match on the MDS to avoid matching remote locks (592)
+ - Fix fsfilt_extN_readpage() to read a full page of directory
+ entries, or fake the remainder if PAGE_SIZE != blocksize (500)
+ - Avoid extra mdc_getattr() in ll_intent_lock when possible (534, 604)
+ - Fix imbalanced LOV object allocation and out-of-bound access (469)
+ - Most intent operations were removed, in favour of a new RPC mode
+ that does a single RPC to the server and bypasses most of the VFS
+ - All LDLM resource ID arrays were removed in favour of ldlm_res_id
+ - Aggressively cancel local locks on DLM servers
+ - mds_reint_unlink sends EA to the client if it's the last nlink.
+ client uses that EA to unlink OST objects.
+ - mds_reint_{rename,unlink,link} were rewritten to take ordered locks
+ - recursive symlinks were fixed (439)
+ - fixed NULL deref in DEBUG_REQ
+ - filter_update_lastobjid no longer calls sync, which annoyed extN
+ - fixed multi-client small-writes to a single file problem (445)
+ - fixed mtime updates during file writes (607)
+ - fixed vector writes on obdfilter causing problems when ENOSPC (670)
+ - fixed bug in obd_brw_read/write() (under guise of testing 367)
+ - fixed Linux OST size reporting problem (444, 656)
+ - OST now updates object mtime with writes or setattr (607, 619)
+ - client verifies file size before zeroing page past EOF (445)
+ - OST now writes last allocated objid to disk with allocation (108)
+ - LOV on echo now works (409)
+ * protocol changes
+ - mds_reint_unlink sends a new buffer, with the EA included. this
+ buffer is only valid if body->valid & OBD_MD_FLEASIZE, which is only
+ set if a regular file was being unlinked, and it was the last link
+ - use PtlGet from the target for bulk writes (315)
+ - OST now updates object mtime with writes or setattr (607, 619)
+ - LDLM now has a grant-time callback to revalidate locked items, if
+ necessary (604)
+ - Many MDS operations were reorganized to combat race conditions
+ * other changes
+ - Merge b_intel branch (updated lprocfs code) - now at /proc/fs/lustre
+ - configure check to avoid gcc version 2.96 20000731-2.96-98) (606)
+
+2003-01-06 Andreas Dilger <adilger@clusterfs.com>
+ * version v0_5_19