-----------------------
PVFS2 Release ChangeLog
-----------------------

pvfs2-1.3.0
===============
- Murali Vilayannur contributed extened attribute support to the VFS interface
- Murali and Dean Hildebrand also worked on implementing readv and writev in
  the VFS interface
- Phil Carns contributed logging improvements to pvfs2-client and pvfs2-server
- Phil also contributed improvements to the request processor which should
  help speed up some concurrent workloads.
- Phil further contributed protocol versioning to PVFS2.  Major version
  changes are incompatible up or down.  New clients can't talk to old servers,
  but new servers can talk to old clients. 
- clean up some warnings on 64 bit platforms
- Phil contributed a pvfs2-set-sync tool 
- lots of configure tests for various kernel versions
- rework acache
- memory leak in flow descriptors
- bugfixes for noncontig requests
- improvements to the req scheduler: more operations can occur concurently now
- improved handling of "zero-fill" case: sparse files now treated correctly
- further improvements to nightly testsuite


pvfs2-1.2.0
===============
- make server better able to handle bogus file names (David Metheny)
- better casts for ppc64
- even better configure tests for various berkely db features
- documentation updates for Fedora 4 changes
- extended attribute support (not available through VFS yet)
- nightly build infrastructure now mostly in place
- --enable-strict now works again
- new utilities: pvfs2-touch, pvfs2-stat, pvfs2-ln
- add additional write() checks to kernel module
- hold st_nlink field at 1: keeping a true count is quite hard to do
  correctly in a distributed environment
- new distribution: "varstrip"j
- better pvfs2 kernel module debugging interface (/proc/sys/pvfs2/debug)
- pvfs2 now supports setgid 
- build: avoid some warnings from gcc4
- kernel: understand new backing_dev_info format in 2.6.12
- Added DefaultNumDFiles as filesystem config option.
- Added num_dfiles tabfile option.  i
  The number of dfiles is set by searching for the first given hint in this
  order:  application hints, tabfile, server config.  The selected 
  distribution may modify the hint if neccesary.
- Phil Carns contributed general improvements and bug fixes for the dotconf
  parser.
- Added DefaultDistribution section support for server config file.  Section
  is optional and accepts Name, Param, and Value (Param and Value may be
  repeated multiple times in the section).
- added 'retry' and 'timeout' config file options
- will consult /etc/mtab as an additional source for pvfs2 tabfile entries

pvfs2-1.1.0
===============
- network protocol: more 64-bit alignment fixes
- build: hide karma details in its module.mk
- build: remove duplicate commands used for QUIET_COMPILE
- build: fix test configure library detection
- build: simplify karma and vis some more
- build: add tests for features of Berkeley DB 4.3.xx
- trove: fix bugs introduced by new features of DB 4.3.xx
- docs: added doxygen configuration file and doxygen-style docs
  to many source files
- pvfs2-cp: can pass strip size as a parameter (thanks David Beilloin
  <dbeilloi@mc.com>)
- gossip: avoid double-timestamp in debug and error messages
- feature-test for kernel routines i_size_write, i_size_read, and parent_ino
- recover better from server failures
- kernel: export superblock magic number for romio autodetection
- 64-bit: change some protocol encodings to avoid unaligned accesses, fix
  server crash
- documentation updates
- Phil Carns and David Beilloin reported various memory leaks and memory
  misuse throughout the code
- Phil Carns and David Metheny contributed their improvment to the
  permissions-checking routines.  Secondary groups work much better now.
- configure-time options to select behavior needed on redhat-like environments
- can disable server support at configure time
- various tweaks to make cross compiling easier
- Phil Carns contributed a new config file option (LogStamp) to select
  timestamp format
- By default we sync metadata (TroveSyncMeta yes) and not data (TroveSyncData
  no).  This configuration is a good compromise between reliability and
  performance for most workloads.
- Joachim Worringen's noncontig benchmark turned up several bugs now addressed
  in this release
- bugfix where pvfs2-chmod would cause all future operations to fail
- bugfix for 64 bit servers.  pvfs2 on opteron now passes the bonnie benchmark

pvfs2-1.0.1
===========
- ib: add configure-time checks for mosal library variations
- ib: flush send queue work requests periodically
- ib: search receive queue for both eager and rts (D. Beilloin)
- improved support for some cases of file holes (that require zero fill)
- fixed a crash bug due to incorrect assertion regarding zero fill
- applied annotations and cleanups to the kernel module in response to
  using the automated correctness checker called 'sparse'
- fixed a bug that did not properly allow storage space removals when
  using ReiserFS as the underlying file system
- added more redhat checks for determining if we need to patch the
  kernel module code to work properly with particular releases
- FAQ documentation update


pvfs2-1.0.0
===========
- disabled mmap readahead cache by default; allow configure option to
  optionally enable it
- added support for handling several cases of file hole zero fills
  (i.e. sparse files)
- configured acache timeout to be 5 seconds by default through the
  vfs; sysint was already 5 seconds
- added karma program installation to make install target
- redhat 9 related changes (in order to work out of the box)
  - used some 2.6.x kernel code on redhat 9 2.4.x kernels, if detected
  - no longer mark pages as reserved on redhat 9 2.4.x kernels, as it
    causes an oops on their kernel (i.e. not necessary)
  - installed a wrapper script in place of the pvfs2-server that
    exports the LD_ASSUME_KERNEL environment variable before running
    the server(to avoid using the redhat NPTL library which is
    incompatible)
  - fixed make kmod{24}_install even if there are multiple UTS_RELEASE
    definitions in the version.h file (as there are in redhat 9)


pvfs2-0.9.0
===========
- documentation updates to HA and FAQ documents
- better balancing (randomization) of data server selection when
  creating new files
- clean up a few request-related 8-byte alignment issues for alpha
- fixed an AMD64 kernel oops due to a bad cast
- cleaned up error code types in the exposed sysint and mgmt methods
  (using PVFS_error rather than int)
- added a setattr debugging mask and changed most detailed setattr
  debugging to use it
- added a mkdir debugging mask and changed most detailed mkdir
  debugging to use it
- added some inlined methods in PVFS_util (as they need to be used on
  both the server and the client) for getting the current time in
  PVFS_time format, encoding a PVFS_time as a version (finer grained
  than a 'normal' PVFS_time since we can use the high 32 bits), and
  decoding the version as a PVFS_time
- added a compatibility hack that _should_ allow no noticeable
  breakage on existing storage space, but will eventually migrate to
  the slightly new storage format over time
- modified client side sys-mkdir, sys-create, and sys-symlink to
  encode the mtime as a version when passing it to the server (so it's
  transparent from the server perspective)
- modified server side get-attr to decode the version read from disk
  back into an mtime (so it's transparent from the client perspective)
- modified mkspace method to properly version newly created root and
  lost+found directories
- modified the server side mkdir operation to return -PVFS_EINVAL if
  the object attr type is not a directory object
- vfs readdir modifications to detect directory version changes on
  listings; default behaviour is unchanged
- fixed bug in collection remove that didn't remove the collection
  information from the collection db (which manifested as having a bug
  where a collection that was once created and then removed could
  never be created again due to a lookup succeeding before it should)
- added documentation on how to create multiple file systems within a
  single pvfs2 storage space
- added documentation on return codes of the sysint methods
- pvfs2-mkspace improvements:
  - now requires a collection ID, storage space and a handle range
  - fixed types used to represent actual root handle and collection id
    to be the proper types, rather than integers
  - remove many defaults in favor of requiring cmdline options
  - replace atoi calls with strtou{l}l to accomodate larger values if
    specified
  - cosmetic output improvements
  - fixed mkspace method to make sure that we only use handle ranges
    that are both non-null, AND are not an empty string


pvfs2-0.8.0
===========
- adjusted mask values for event logging to skip 0 mask
- moved handle counting in statfs to server side so that it is
  done in parallel
- replaced uniq() subroutine in PAV to avoid recursion
- pvfs2-statfs cleanups and cast fixing
- pvfs2-shell-test: replaced a directory test
- add a clientcore_timing debug mask that only logs the operation
  timings from the pvfs2-client-core
- added some pts debugging
- fixed bad assumption in getattr-acache that might have looked at the
  wrong handle/fs_id during some operations (e.g. lookup)
- removed potential latency on system startup by trying to store temp
  config files in /tmp/ first rather than the current dir
- make sure that our error routines strip any known class error bits
  instead of deciding that they're unrecognized if set
- improved trove error handling
- improved pvfs2-server error handling
- fixed crash bug in our config parser that tried to strdup strings
  that might be NULL
- pvfs2-types.h header file simplification and cleanups
- extended buffer size of filename for use with mkstemp as it started
  failing on ppc with misc unexpected characters
- addition of a simple vfs test program that creates a file with a
  hole in it and tries to read from that hole (this demonstrates a
  currently known bug)
- addition of the same test program using only the system interface
- fixed some misc memory/resource leaks
- fixed test program ls.c and admin program pvfs2-ls.c to not issue an
  extra call to readdir on every run by fixing a slight logic bug
- added a directory version that is passed back from the server to the
  client on each successful readdir call and updated the client and
  server response structures and encoder to accomodate this
- ncache related:
  - increased ncache timeout from 5 seconds to 30 seconds by default,
    but keep it disabled by default (it's still experimental)
  - cleaned up the ncache and make it useable by the
    lookup/remove/create/mkdir/etc calls (if enabled)
  - added a flag to the client sysint lookup sm that records if the
    final object resolved was a followed symlink or not (regardless of
    if it was followed or not)
  - extended the ncache interface (lookup/insert/remove) to have the
    ability to have multiple entries with the same name with different
    handles based on some other tag (e.g. resolving a symlink object,
    rather than what it points to).  this is also not in use at the
    moment.  for now, no symlink objects will be inserted into the
    ncache.
  - added more ncache debugging
  - added a fastpath return from client sysint lookup method on ncache
    hit
  - updated and extended all ncache test programs to work with the
    changed API and fixed broken tests/verified that they still work
- kernel related:
  - fixed all warnings generated from compiling the pvfs2 kernel
    module under 2.6.9 kernels
  - removed write_inode method, as it was unused and probably won't be
    used
  - removed unused -v command option to pvfs2-ls
  - added command option -V (and --verbose) which can detect version
    differences in the directory being read and will report them if
    this switch is enabled
  - fixed misc compilation warnings on Opteron/AMD64 machines
  - added directory version to readdir downcall (passed from
    pvfs2-client-core)
  - removed include of modversions.h directly from pvfs2-kernel.h


pvfs2-0.7.0
===========
- fsck: server handles bogus datafiles better
- fsck: pvfs2-fsck is a little smarter about what it tries to salvage
- ib: avoid unsignaled WQE pileup
- ib: avoid polling cancelled connections (first stab toward true
  cancel)
- ib: spin-block in test functions for better performance
- ib: do not "open" HCA, just grab a handle
- ib: fix leaking connection structs (thanks to D. Beilloin)
- ib: use faster 1k mtu
- ib: cleanup warning texts
- configure: add option to disable AIO threaded callbacks
- configure: fix GM and IB to enable only when explicitly requested
- add timestamps to gossip debugging to file and stderr (not syslog)
- ib: initial cancel support, works for pvfs2-ls
- add multihome support: servers can listen on multiple addresses (and
  BMI types), clients choose the first address from tabfile that works
- bmi: poll adaptively based on recent usage
- added trove-dbpf support for internally limiting the number of
  simultaneous aio operations allowed in progress; default value is 16
- increased mmap-ra-small buf size from 4K to 16K to avoid many small
  allocations (causes slightly larger mem footprint of client-core)
- adjusted client sysint setattr operation to work in a write-through
  manner with the acache (when enabled)
- fixed client sysint setattr to invalidate the acache entry (if any)
- changed acache lookup to return the status (to avoid another acache
  call that will always follow a successful lookup)
- internal acache improvements, such as removal of duplicated code
- updated acache-torture test program to match slightly new acache
  interface
- make sure mmap's requesting MAP_SHARED fail (mmap2 returns -EINVAL,
  userspace mmap returns standard MMAP_FAILED value)
- added compile time support for measuring roughly how long it takes
  to process particular operations issued from the vfs
- modified PINT_sys_testsome to return immediately without calling
  testcontext if any ops are completed and ready to be returned right
  away
- made statfs return load information from servers
- gm: fixed performance bug, make sure test calls check completion
  queue before sleeping
- gm: implement cancel functionality and verified for common cases
- fixed dbpf SYNC macro bugs that caused hangs on systems without aio
  callback support
- updated pvfs2-config tool to use LIBS variable from configure
- removed -ldb from client side link stage
- added --serverlibs option to pvfs2-config to determine what
  libraries have been linked against pvfs2-server
- updated makefile system for tests directory to use pvfs2-config and
  deprecate use of .libs file
- added make install target for test harness programs
- introduced mutex locking in trove-handle-mgmt to avoid race
  conditions that appear when statfs is called while trove operations
  are in progress
- added utility functions for measuring elapsed wall, system, and user
  time between specified points in code
- fix glaring alignment failure in PVFS_server_req
- fixed type of readahead_size in upcall for mmap-ra-cache that caused
  the mmap-ra-cache to not work properly on PowerPC
- no longer look in the mmap-ra-cache for data on reads unless we're
  sure we're doing an mmap or execution (as opposed to always)
- removed kernel module pvfs2_link call, as it was never used
- moved static copy_mntent method to PVFS_util_copy_mntent method
- added error handling to PVFS_util_copy_mntent
- renamed PVFS_sys_free_mntent to PVFS_util_free_mntent
- fixed successful return value of PVFS_util_copy_sys_attr
- fixed initialize-dyn test program that broken due to mntent changes
- changed get_data_sync_mode to explicitly return TROVE_SYNC if called
  on an unregistered fs_id


pvfs2-0.6.5
===========
- broke several server state machines into multiple nested machines
- some PAV cleanups, including support for a larger number of meta
  servers than io servers
- update k_size (number of keyvals) in dspace attr cache when the
  number of keyvals on disk changes
- replaced all vfs 64 bit operation tags to be unsigned
- replaced pint-dev code to work with 64 bit unsigned tags
- moved all op initialization out of the constructor and into the
  op_alloc routine
- fixed tag cancellation upcall/method to use a 64 bit tag, rather
  than an unsigned long
- added a PVFS_util method to get the current system and return it as
  a valid PVFS_time type
- added arguments to the crdirent/chdirent/rmdirent operations that
  now can take optional parent atime/mtime/ctime fields
- added support on server *dirent operations that update the parent
  time attributes (if specified) on successful completion of the
  *dirent operation; null/zero time fields are not modified
- modified sys-create/sys-mkdir/sys-symlink/sys-rename/sys-remove to
  work with the new operations properly; in general,
  create/remove/rename operations updates the mtime and ctime of the
  parent directory, which is now properly supported
- moved some common server side attribute handling code into a macro
  to make it re-useable across several server state machines
- updated en{de}coding of modified operations
- remove sync calls on readonly trove operations
- added sanity check to kernel's device poll; makes sure the device is
  opened by only one user before returning valid results
- make the device's request list waitqueue non-exclusive, since poll
  waits as well
- some formatting changes on kernel error reporting
- added mmap-ra-cache support for partial cache fills on incomplete
  requests; misc mmap-ra-cache enhancements
- cast setparam values to uint64_t rather than int64_t in admin utils
- remove trove sync call on server side root handle check
- modify server side remove state machine to check the k_size of the
  dirdata object being removed if it's a directory to report early
  back to the client that the directory is not empty (if it's not)
- remove the readdir checks in the client remove path now that the
  server-side remove can tell us directly if a directory is not empty
- modified PVFS specific error routines to print the value of
  unrecognized error codes if encountered
- fixed memory leak on check_fs_id setparam
- fixed 64bit compile warnings (AMD64/Opteron)
- split msgpair debugging into it's own class (no longer part of
  'client')
- break out clientcore debugging into its own debugging mask
- fixed trove error codes
- give trove flush and resize operations the ability to create the
  bstream they're working with if it doesn't exist instead of
  returning an error
- fixed bug in (threaded) trove that did not properly reinitialize
  condition variables after the first finalize
- improvements to the storage space and collection removal code
- extensive trove cleanups and cruft removal
- check for error codes when doing server side getattr and reading
  metafile information; stop processing if an error is reached
- invalidate attr cache on write_at calls (never used)
- changed pvfs2-showcoll coll_id prints from hex to decimal
- kernel changes:
  - enable kernel readahead hints on mmap/execution (i.e. sequential)
  - initialize kernel module's request_list_waitq at declaration time
  - put large print statement into a macro for convenience
  - make all bufmap allocations GFP_KERNEL, regardless of highmem usage
  - use add_waitqueue_exclusive for the io_completion_waitq entries
  - clear random readahead hint on mmap


pvfs2-0.6.4
===========
- added a pvfs2-config tool to help when compiling against pvfs2
- new PAV option (COMPUTENODES_LAST) that controls whether compute
  nodes are chosen first or last out of the total set of nodes
  available
- fix locking bug introduced in 0.6.3 that shows up when trove is used
  without aio callbacks
- explicitly name invalid msg tag value (0)
- modified pvfs2-ls to show the mtime (rather than atime) in long
  listings
- updated set-info test program to update mtime (rather than atime)
- fixed possible flow mutex memory leak
- changed PVFS_time from an int64_t to a uint64_t
- fixed a pvfs2-fsck compile time warning
- fixed bug in sys-remove that erroneously tried to back out of the
  remove even on error codes that are acceptable to return
- moved to fully 64 bit unsigned gossip masks (for some more possible
  debugging levels)
- fixed bug in shared-state-machine getattr method that could allow
  attributes to come out of the acache with incorrect types/fields
- fixed bug in crdirent msgpair setups for create/mkdir/symlink (used
  incorrect handles in mappings)
- modified mgmt setparam call to take uint64_t parameters instead of
  int64_t
- kernel changes:
  - fixed bug that allowed a file removed on one client to still
    appear on another with bad attributes
  - fixed dentry revalidation to never return that a dentry is valid
    if's negative
  - fixed directory inode's mtime and ctime changes on updates
  - fixed directory link counts for some changes
  - simplify atime/mtime/ctime conversion to sys_attr (and vice versa)
    to and from inode's time fields


pvfs2-0.6.3
===========
- added ability to negate log categories in
  PVFS_debug_eventlog_to_mask
- added pvfs2-fsck
- updated pvfs2-quickstart to better discuss client configuration
- added optional epoll() based socket management component (enable
  with configure option --enable-epoll on linux 2.6 systems)
- fixed configure bug that dropped default CFLAGS in some cases
- adjusted trove id generation to make it easier to log trove events
- fixed Makefile.in bug that caused pvfs2-server.c dependency
  information to be lost
- rewrote both threaded and nonthreaded versions of all job_testXXX()
  functions
  - fixed condition variable usage to avoid signaling races that could
    lead to unecessary wait times
  - simplified code path
  - removed superfluous calls to gettimeofday()
- adjustment of condition variable usage in trove-dbpf to avoid races
  similar to those found in job_testXXX()
- applied vim formatting patch to use spaces instead of tabs
- fixed pvfs2-server permission check to allow users of the same group
  to have access to other group members attributes (for listing)
- fixed incorrect/invalid error codes and error handling
- fixed pvfs2-server crash bug due to io state machine potentially
  freeing a reqsched id that was never posted
- added mgmt methods PVFS_{i}mgmt_get_dirdata_handle for retrieving
  the internal dirdata handle of a specified 'parent' object (if any)
- fixed pvfs2-server crash bug (race) in trove that could return an
  object on queue addition that has already been serviced
- extended server side mkdir state machine to create the internal
  dirdata dspace when creating the directory (rather than waiting for
  crdirent to create it if it doesn't already exist)
- added mgmt methods PVFS_{i}mgmt_create_dirent mgmt for creating
  directory entries at a low level
- fixed request scheduler's acceptance of the mgmt-remove-* operations
  while in admin mode (since these can be used in admin mode)
- extended mkspace (and thus pvfs2-mkspace program) to initalize a
  lost+found directory after the root directory is made
- kernel changes:
  - fixed credential usage bug that resulted in (seemingly random)
    permission problems when using the file system as multiple users
  - fixed a bug that appeared as data corruption due to mapped memory
    pages in use being swapped out under heavy memory load under 2.4.x
    kernels (and containing incorrect data on future accesses)
  - remove slab poison flag from debug allocators, as some kernels
    complain about how it was used
  - do not use kmap/kunmap calls if not configured for HIGHMEM, as
    some configurations cannot resolve these symbols


pvfs2-0.6.2
===========
- updated documentation for dist-simple-stripe.c and modified
  the basic distribution to use a single data file object.
- fixed error reporting in pvfs2-server that didn't understand pvfs2
  specific error codes
- extended request scheduler to allow operations to pass through
  without being scheduled (and allow the noop operations to work like
  this)
- disabled the (unused) device interface on server builds, reducing
  server run-time threads by one
- bmi optimizations: avoid polling in test calls if operations are
  complete, or no operations are complete but there are unexpected
  operations ready to be serviced
- extended the pvfs2-mkspace tool to be able to work with data and
  meta handle ranges separately (also extended the internal interfaces
  as necessary for this functionality)
- fixed bug in mkspace that could create the root directory dirent
  object in a non-meta handle range
- added client side attribute type checking that avoids contacting
  servers if we've determined that the operation we're about to
  perform cannot be performed on an object of the type we were told to
  work on.  e.g., a readdir operation will not be issued to the server
  if the getattr reports that the object we want to readdir on is not
  a directory.  most sysint operations now have this checking in place
- fixed crash bug on the server crdirent operation if passed a
  non-directory object type
- fixed race condition triggered when pvfs2-server is getting many
  more incoming operations than it has posted unexpected msgs for
- increase the default number of posted unexpected msgs by the server
- properly re-integrate and simplify the usage of the mmap-ra-cache,
  which wasn't working properly after the pvfs2-client-core re-write
- fixed crash bug on the server due to an unexpected error code coming
  out of pthread_cond_timedwait inside of job test calls
- modify configure script to append date and time information to non
  release builds (for more fine grained version information if needed)
- fixed acache usage in sysint create/mkdir/symlink operations
- open-cache remove now syncs (if necessary) after the remove, rather
  than just before
- removed duplicate 'open_cache' debugging keyword definition
- allowed client side logging (via PVFS2_DEBUGMASK/PVFS2_DEBUGFILE env
  variables) to append to the specified logfile, rather than
  truncating it if it already exists
- fixed bug in device test method that didn't properly adjust the
  outcount on failure; also added the number of bytes read on a failed
  (short) read
- started adding debugging code for printing out server side response
  structures (only getattr is currently implemented)
- kernel changes: added some debugging and simplified the
  handle_io_error macro.  also added translation of non-errno pvfs2
  error codes (should it get one) to avoid returning entirely
  incorrect error codes in some cases; avoid allowing -PVFS_ECANCEL to
  be passed down to the kernel code from the pvfs2-client-core.  use
  i_size_read to update file position on opens for append.  remove old
  code that manually updated the inode's file size on writes
- replaced debugging mask of cancelled i/o operations from io to
  cancel
- simplified pvfs2-statfs by retrieving all server statistics in one
  call, rather than separate ones for meta and data servers; also
  fixed reporting of server duties (previously all servers were
  reported as serving both meta and i/o data)
- added a start banner to pvfs2-client-core if client debugging is
  enabled.  this allows easier visual inspection of restarts in logs
- fixed bug when copying credentials to first make sure that they're
  valid in all sysint/mgmt calls
- added both server and client side (mgmt) operations to remove
  arbitrary pvfs2 objects and directory entries without prejudice
- added a 'pvfs2-remove-object' tool that can remove pvfs2 objects and
  directory entries (use is not generally encouraged)
- fixed pvfs2-fs-dump crash bugs when it fails to find some objects it
  was expecting to see
- adjusted the time that pav allows for copying binaries out to remote
  machines
- fixed bug bmi_tcp potential send deadlock under heavy loads
- added a mgmt method that allows parameter sets on single servers
  (rather than the previous one that allowed only all servers)
- extended pvfs2-set-debugmask program to have the ability to set the
  debug mask on a single server (rather than all) via cmdline options
- replaced TroveSyncMode configuration option with separate
  TroveSyncMeta and TroveSyncData options.  the default values are yes
  for both
- updated pvfs2-genconfig to reflect TroveSync* config option changes
- implemented understanding of the data sync mode option in the flow
  interface via the setinfo method
- modified pvfs2-server to pass data sync mode option to the flow
  implementation via setinfo on a per fs basis


pvfs2-0.6.1
===========
- misc. updates to msgpairarray and associated tools to allow for
  server side use
- reorganization of server request parameters so that more (but not
  all yet) are stored in a centralized table
- removed some deprecated test programs
- new pint-util.[ch] to contain utility functions shared between
  client and server
- some refactoring of server state machines (mainly crdirent) to allow
  for code reuse in other state machines
- no longer need to fix up generated html by hand
- fixed a bug that allowed an open through the vfs without the O_CREAT
  and O_EXCL flags to return -EEXIST (should be success in that case)
- added a file_open.c test program that tests opens in various modes
- error code cleanups (added PVFS_EACCES mapping to EACCES; moved
  PVFS_EDETAIL to be a non-errno error code)
- fixed pvfs2-ls to properly convert reported file times in user's
  configured system localtime, rather than in UTC
- fixed the kernel module information so that modinfo doesn't report
  many duplicate entries
- fixed server pidfile usage (-p cmdline option)
- fixed msgpair retries to properly delay between retry attempts
- added trove hooks to be able to peek at handles that will be
  allocated later
- cleaned up the remove state machine and removed an unnecessary
  allocation/copy
- fixed existing acache usage in the sysint calls to be more uniform;
  removed some overhead in the sysint
- fixed kernel device close to be aware if mounts are still active
- added more tests to pvfs2-shell-test that test deeply nested
  subdirectories
- added a method to determine the min handle recycle time across all
  configured servers' file systems
- changed code formatting rules to use spaces rather than tabs in vim
- fixed bug that didn't reload the cached config information on file
  system removal (i.e. unmounts)
- added a cmdline argument to pvfs2-client to specify the acache
  timeout to use at run-time (default is 0 milliseconds, which is
  effectively disabled).  this timeout is upper bounded by the min
  handle recycle time across all servers, and it can change
  dynamically as new mounts come and go
- fixed a bug that allowed servers to create internal storage objects
  outside of the meta handle ranges in some circumstances
- replace single element msgpair/array setup code where possible with
  a macro


pvfs2-0.6.0
===========
- removed pvfs2-import and pvfs2-export in favor of pvfs2-cp
- added compile time option for disabling thread-safety in the client
  library (enabled by default; --disable-thread-safety to disable)
- improved configure summary information emitted at configure time
- added missing non-blocking sysint declarations to sysint header
- made sysint test and testsome() calls more useable
- merged dev unexp polling/handling with system interface
- added PINT_sys_dev_unexp call that allows posting unexpected device
  messages so that they can be returned from the sysint testsome
  method in addition to completed sysint operations
- added a id_gen_fast_unregister macro that is a no op, to make the
  api more consistent with the id_gen_safe_* calls
- modified device driver to work properly in non-blocking mode from
  userspace by implementing the character device poll method and
  modified the pint-dev device interface to make sure it can handle
  the pvfs2 device in a non-blocking manner; added a no immediate
  completion option to the device interface; made test more efficient
  by not polling if no idle time is specified; check for poll errors;
  use proper buffer sizes for reads across the device
- added a method to free the mapped memory region on pvfs2-client-core
  shutdown (valgrind complained)
- modified all job uses of the id-generator to use the safe, rather
  than fast, methods (useful for several reasons including safe
  cancellation of already completed operations)
- modified the job_dev_unexp method to have (and honor) the no
  immediate completion flag if passed (used in the pvfs2-client-core)
- re-wrote pvfs2-client-core to use sysint non-blocking operations
- improved human readable size reporting
- allow human readable size reporting to optionally use si units
- added --si option to pvfs2-ls (similar to ls's --si option)
- added -H option to pvfs2-statfs (similar to du's -H option)
- added a method able to cancel I/O operations in progress
- removed kernel ability to kill device file on cancelled I/O
- added the ability of sys-io.sm to handle run-time cancellation while
  still transitioning properly
- added support in the pvfs2-client for ignoring an upcall retry for
  an op already in progress (as opposed to servicing it multiple
  times)
- added kernel method that allows the cancellation upcall/downcall
  cycle to progress, ignoring the fact that a signal is pending (since
  the only time a cancellation is issued is when there's a signal
  pending)
- fixed kernel oops on setattr (signal) interruption by returning a
  valid error code in this case
- full acache cleanup, bugfixes, and thread-safety support
- allow the sysint post() method to complete an op if finished
  (i.e. all states are immed. completion) by adding it to the
  completion list (which test/testsome can retrieve)
- removed 'cached' attribute fields from getattr_sm object
- removed mostly duplicated code from shared-state-methods.c
- added support (testing only) for building a threaded client library
- gracefully terminate thread-mgr testing threads on errors (this is
  only really useful for graceful shutdown of the threaded client
  library)
- added a set_info option to bmi that tells it to be more aggressive
  when cancelling operations (bmi_tcp will now close sockets)
- fixed kernel bugs that didn't release the bufmap indices in use on
  some error paths (eventually caused all of them to be permanently
  used which caused hangs on I/O)
- extended msgpairarray code to only retry msgpairs that haven't
  completed already
- increased kernel module single operation timeout to be 60 seconds
  instead of 30 seconds (note: as a side-effect this also extends the
  amount of time you'll have to wait on interrupted operations via
  signal for now)
- added PVFS_strerror_r; an equivalent to strerror_r (the thread-safe
  strerror call) that handles PVFS_error codes
- added a simple file_write test program (tests are not in releases)
- always delay for 1 second before spawning the pvfs2-client-core from
  within the pvfs2-client to avoid filling dmesg with harmful looking
  errors while restarting (and re-opening the device file)
- new trove component called dbpf-open-cache that caches open file
  descriptors and db references; replaces dbpf-bstream-fd-cache,
  dbpf-dspace-db-cache, and dbpf-keyval-db-cache; fixes a few long
  standing file size and attribute bugs
- added a few missing admin tools to make install target
- more attribute debugging messages or server
- added admin utility program pvfs2-chown
- added make lib/pvfs2-threaded.a target that can be used to build a
  multithreaded version of the pvfs2 client library
- thread safety for dynamic activation of bmi methods
- fixed makefile LD selection and html docs target
- fixed bmi deadlock that appears in multithreaded library
- fixed responsiveness of pvfs2 kernel driver device poll
- added new option to BMI called BMI_FORCEFUL_CANCEL_MODE to serve as
  a hint to modules to be more aggressive when cancelling operation
  (i.e., tell tcp to always close sockets when cancelling)
- renamed pint-bucket component to pint-cached-config
- enabled pint-cached-config on server side
- unified how autogenerated .c files are tracked across client and
  server builds
- fixed distclean for release tarballs so that it does not destroy .c
  files that cannot be regenerated without full cvs source
- moved msgpairarry from client code to common code and made many
  adjustments to enable general usage; linked into server
- misc. msgpairarray cleanups
- removed depricated PINT_client_bmi_cancel() function
- updated state machine compiler to allow multiple machine definitions
  per file
- added new null job type that can be used to manually trigger
  asynchronous state machine transitions
- refactored server side functions used to start state machines that
  are not tied to incoming requests
- refactored server crdirent state machine using nested state machines
  and a little bit clearer error handling
- added job functionality to reset timeout timer on pending jobs
- removed old "contig" encoder from source tree
- added new "cancel" debugging mask to look at job timeout behavior
- documentation updates: a new high availability document, faq update,
  guide update, manpages
- moved exported pvfs2-util string functions to private str-utils
- added permission checking debugging mask and keyword to debug what
  the server is doing on permission granting or failure
- modified cosmetic output of admin tool pvfs2-set-debugmask
- make sure pvfs2-client doesn't cause a hang on ssh logout due to
  improperly closed fds; this was fixed in the past but unfixed to
  report exec failures.  we can't do that anymore with this setup, so
  we'll have to either require an absolute path to the client
  (preferred), or scan the PATH ourself to be sure it can be found; or
  log to a file like the server
- added debugging regarding the handle re-use timeout
- increased the default handle re-use timeout from 45 to 360 seconds
- removed redefinition of the default handle timeout constant
- change permissions to reasonable defaults on newly created
  directories using pvfs2-mkdir
- extended pvfs2-cp to preserve src to dest permissions where
  applicable
- extended pvfs2-cp to allow symlinks to be copied to and from pvfs2
  (as the link target file, not as a link -- similar to normal 'cp')
- extended pvfs2-cp to truncate target files if they exist
- added a threaded vfs test program to perform heavy I/O on a single
  file
- fixed pvfs2-server to continue processing after recoverable
  BMI_testcontext errors
- added some gossip debugging along the acache code path
- kernel bugfixes:
  - don't attempt to shrink the sb's dcache on device close in the
    case that the sb has not yet been filled
  - translate error codes that occurred while waiting for the
    downcall, rather than assuming an error came back from the
    downcall (in the case that it didn't); fixes a possible oops on
    invalid mounts
  - use fully 64-bit op tags instead of relying on unreliable casts
    and assumptions moving from kernel space to userspace; changes use
    of an atomic_t type to a spinlock protected int64_t; works on ppc
    without problems now
- changed pre-posted write_ack recv posting to have an infinite
  timeout that is reset on flow completion to avoid timeouts before
  operation completion
- fixed crash bugs on (unexpected) job expiration in various places
- fixed crash bugs when an invalid (or unsupported) encoding type is
  specified by reporting the error to the user, and the completing the
  operation if possible by cycling through the valid encoders
- added pvfs2tab support for the line encoding=default


pvfs2-0.5.1
===========
- added a pidfile option to pvfs2-server for init script integration
- auto-tuned BMI timeout to poll during activity, sleep a bit
  otherwise
- pay attention to BMI timeouts in IB layer
- fail quitely on unrecognized BMI method types in pvfs2tab
- disabled TCP method for IB builds
- added pvfs2-cp, which should have all of the functionaly of
  pvfs2-import and pvfs2-export, but none of the bugs (!)
- bug fixed to idle detection logic in job.c (non-threaded case)
- some tweaks to BMI timeout behavior
- removal of some deprecated BMI code
- bug fixed that caused problem when trying to add an invalid mount
  entry
- bug fixed when trying to add general dynamic mount entries
- distribution framework cleanups
- updated test programs and pts test harness to use new distribution
  code
- bug fixed that allows i/o attempts on non-datafiles to be handled
- bug fixed that caused breakage on the verbose debugging mask
- implemented non-blocking client library calls for all sysint and
  most mgmt operations
- changed all credential arguments to credential references
- export id-generator methods for sysint users
- removed pvfs2-threaded-client-core application from code base
- added pvfs2-mkdir program
- added pvfs2-cp program (soon to replace both pvfs2-import &
  pvfs2-export)
- added a GPL license notice in the top level files for the kernel
  module
- moved cached configuration information our of the configuration
  object
- allow server setattr operations to be performed even if write access
  on the object being modified is not granted (fixes utime failures
  and misc other permission problems like untarring some files)
- kernel bugfixes:
  - fixed an oops on cancelled object operations (file,dir,symlink)
  - fixed kernel error codes in several places
  - fixed a memory leak that didn't free symlink targets
  - replaced new_inode call with iget to avoid the possibility of
    duplicate inodes with the same number in the vfs
  - fixed kernel create mode translation when creating new objects
- kernel 2.4.x. support introduced (supports 2.4.19 and up)
- allow pvfs2-client to restart on device open failure
- updated quickstart with the following information:
  - gcc 2.96 or above is required (as gcc 2.95 generates buggy code)
  - how to use the kernel interface under 2.4.19 or above
- misc cleanups, error handling, and debugging


pvfs2-0.5.0
===========
- consolidate msgpair and msgpairarray implementations
- bug fixed in "make kmod" path handling
- added ability to build kernel module and test programs to
  pvfs2-build.sh
- added scripts (from Justin Luck) for nightly vfs testing
- started nightly vfs testing (see pvfs2-testing mailing list)
- implemented job cancel api
- added job timeouts, and started using in both client & server
- added ability to (manually) reconnect after transient failure in
  bmi_tcp
- allow queueing of receives for failed bmi_tcp addresses that may get
  reconnected
- removed some depricated client library code
- started using PVFS_ECANCEL rather than PVFS_EINTR for cancelled
  operations
- added bmi address reference counting
- allow server to discard anonymous bmi addresses after connection has
  been closed (to conserve resources)
- removed test subdirectory from distributed releases
- cleanup of protocol version mismatch error messages, including a way
  to propigate errors detected on server back to client
- fixed db cursor leak in trove
- fixed for busy spin condition in client library when retrying
  operations
- various cleanups to error handling in msgpairarray code
- added some shell script testing and bonnie++ testing to automated
  tests
- fixed pvfs2-ls handling of large usernames
- fixed kernel bug that allowed you to remove the module while in use
- kernel bufmap general I/O path improvements
- increase the default size of the server-side attribute cache
  (configurable in pvfs2-genconfig)
- randomize the file system IDs generated by pvfs2-genconfig
- internal id-generator code enhancements
- fixed a gcc compilation warning on older versions
- added a new error code system that allows the addition of addition
  pvfs2 specific error codes for use within the system
- added logic to automatically retry sends and receives of network
  operations on communication failure
- proper unposting and cleanup of posted recvs that are no longer
  needed
- added high level retry logic for system operations to help tolerate
  transient server failures
- fixed truncate operation to properly return error code and not
  operate on anything that's not regular file
- added a chdirent server operation that replaces an existing dirent
  and returns the old (useful for renames where the target exists)
- refactored the client side remove state machine so that it can be
  used by both the remove and rename client operations
- general cleanups and improvements to the client side rename
  operation


pvfs2-0.1.3
===========
- added event logging to request encoder, server state machines, and
  most job calls
- some changes to the event logging mask system
- some new test programs for event logging
- fixed flow protocol handling of zero byte request processing results
- moved pvfs2-client* to src/apps/kernel/linux-2.6
- added an independent configure and make setup for test subdirectory
- removed all dependencies on test subdirectory from src subdirectory
- properly report if the pvfs2-client fails to execute the core
  program
- reworked the error code handling in the kernel module to better
  match the userspace pvfs2 error codes
- handle kernel mount attempts that fail without crashing
- added support for the pvfs2-client-core to request that the kernel
  module pass all of the mount information it knows about back to the
  client so that a client restart can seamlessly pick up from where it
  left off
- added a client/kernel umount operation that removes dynamic mount
  entries
- properly report symlink types in the pvfs2-ls tool
- fixed karma from hanging on start due to a previous api change
- reworked the client side system interface to be able to handle
  dealing with multiple server configuration files at once
- kernel now supports multiple mount points from different servers
- kernel mount option parsing improvements and error handling
- fixed broken configure options: --enable-karma and --disable-karma
- better error handling and synchronization in the kernel module
- fixed a kernel crash if pvfs2-client-core was restarted while
  another process was attempting to do I/O
- added a mechanism for ensuring that remount operations are serviced
  first by the pvfs2-client-core on restart, rather than failing all
  pending operations until the mount tables are built
- reworked the dbpf-attr-cache to use both fs_id and handle as the
  lookup key to allow it to work properly when multiple file systems
  are mounted
- fixed a kernel crash bug that tried to overwrite pages at invalid
  offsets on read error


pvfs2-0.1.2
===========
- BMI IB module:
    - fix bug resulting in mixed-up connections
    - clean up incoming message processing
    - refactor test and testcontext code
    - simplify state machine
- add shared and static libraries build options
- honor PVFS2_DEBUGFILE environment variable in client
- Kernel module builds:
    - build the module with everything else, if configured
    - clean up properly
    - work out-of-tree
- Build system:
    - list explicit include directories
    - add cflags provided by module makefile stubs
    - install kernel module if configured
    - simplify dependency generator script, add .po
- BMI: initialize needed methods dynamically, not at startup
- add ability to force use of alternative pvfs2tab file at run time
- general cleanup of API used for system interface initialization,
  including tabfile parsing
- added reserved value for fsid type to indicate uninitialized value
- BMI and flow interfaces now accept NULL list of modules to
  initialize defaults, BMI interprets this by delaying init of modules
  until needed, flow interface interprets by initializing all possible
  modules
- new api functions for resolving local file system paths
- added ability to dynamically add and remove file systems from the
  system interface at run time
- fix request scheduler bug that was leading to odd behavior under
  heavy I/O load
- added some scripts started by Wes Emeneker to automated the steps
  needed to download and build ROMIO with PVFS2 support
- re-enable compilation of Jiesheng's caching flow protocol
- added new automated nightly test scripts started by Wes Emeneker
  into test/automated subdir
- started running automated tests on Adenine cluster at Clemson as a
  nightly cron job
- isolated a request processing corner case with a test program
- renamed PVFS_pinode_reference -> PVFS_object_ref to cleanup the
  system interface a little further
- added some first stubs for hooks to specify distribution parameters
  at runtime
- added more specific server and client side debugging keywords
- enhanced vfs error reporting
- client sysint cleanups and error reporting improvements
- server operation cleanups and error reporting improvements
- bmi error code translation hooks to work properly with pvfs2 error
  codes
- fixed mmap-ra-cache bug that didn't flush data at the right times
- made the mmap readahead cache functionality a configure option
  (enabled by default)
- fixed vfs bug that caused multiple processes accessing the same file
  trigger a SIGBUS on file close
- enhanced vfs test pvfs2-shell-test.sh to test a tricky case of
  filling and emptying the page cache repeatedly in a worst case
  scenario
- start client sysint thread safety by making accesses to the global
  configuration object serialized
- reworked the vfs statfs method to not cause overflows on some
  kernels
- re-introduced a client sysint lookup optimization to work with the
  overhauled client lookup operation
- fixed size reporting of symlinks in pvfs2-ls program
- fixed vfs getattr calls for directories and symlinks
- added an experimental testbed program for testing threaded client
  sysint operations based on the pvfs2-client-core (called
  pvfs2-threaded-client-core)
- mostly consolidated credential generation to one place
- modified the kernel mount and initialization to use the dynamic
  mount system, where a server and file system name is specific on the
  mount command line (no more hard coded coll_id and root_handle!)
- fixed a particularly nasty vfs race bug that could crash the kernel
  during writes
- fixed a vfs bug that could cause a client to think a file did not
  exist when in fact it did
- added full support for dynamic vfs mount (which breaks the old way
  of mounting, but is more convenient and makes more sense)
- Better documentation for building MPICH2+ROMIO+PVFS2


pvfs2-0.1.1
===========
- can now specify Trove sync behavior when setting up PVFS2 volumes w/
  pav
- added a new mpi-io test to exercise ROMIO's scalable operations
- better detection of dead sockets in BMI TCP/IP module
- fixed pvfs2tab file parsing bug
- completely rewritten TCP/IP socket management
- fixed potential server deadlock on shutdown bugs
- fixed vfs bug that stalled the server on signal cancelled operations
- enhance vfs support to ignore non-fatal signals caught while waiting
  for a remote operation to complete
- added support for the "intr" mount option to allow any signal to
  interrupt remote operations (similar to the nfs option)
- enhanced test/kernel/linux-2.6/pvfs2-shell-test.sh test script to
  test mmap reads and allow more run-time flexibility


pvfs2-0.1.0
===========
- initial support for logging traces with both MPE and Pablo libraries
- fix some warnings on x86-64
- work around older Berkeley-DB versions w/o support for DB_DIRTY_READ
- implementation of cancel() in BMI, Trove, Flow, and thread mgmt
  interfaces
- graceful recovery from I/O errors within flows
- updated perf interface to return metadata access statistics
- various bmi_tcp optimizations (cut down on system calls)
- fixes to bmi_tcp cpu utilization
- dynamic traffic graphs added to Karma
- improved cleanup from messaging errors in client libraries
- added ability to report partial errors with details from mgmt
  interface
- revisited locking approach in jobs, flows, and bmi_gm
- new config file option to control default Trove sync behavior
  (metadata)
- pvfs2-genconfig update to generate default sync'd metadata sync mode
- added experimental metadata mode (nosync, instead of sync) for
  allowing unsync'd operations to occur that reads from dirty memory
  (written but non-committed data) to help enhance performance
- graceful shutdown when server gets ctrl-c (SIGINT)
- pvfs2-ls output and argument bugfixes and better error reporting
- handle allocator fix to no longer return invalid handles if no valid
  ranges have been registered
- improved server version reporting and exit path (using --version/-v)
- vfs kernel module warning removal (code without proper locks held)
- fixed vfs bug that assigned incorrect link counts on new entries
- fixed vfs bug that used uninitialized data structures when compiled
  without kernel debugging support
- fixed vfs bug that didn't properly initialize root inode's
  handle/fs_id
- fixed vfs bug that failed to adjust file position on files opened
  for append
- fixed vfs bug that didn't properly rebuild attributes of files that
  could cause erroneous type changes in the vfs
- fixed vfs bug that could not remove directories with more than 32
  entries in them
- fixed potential vfs race regarding op queueing with a lock
  re-ordering
- improved error reporting of error codes from pvfs2 through the vfs
- improved error reporting and detection in the configuration parser
- optimized server flush operation to only flush either metadata or
  data, depending on the object being worked on
- test/server/showconfig output improvements
- properly clean up meta and data handles during sys_create if the
  crdirent step fails
- make pvfs2-import check if the target file exists before attempting
  to create it
- pvfs2-fs-dump output improvements (made more readable)
- added test/kernel/linux-2.6/pvfs2-shell-test.sh that is useful for
  running some simple vfs tests on a mounted pvfs2 volume
- added configure option to allow the karma gui to not be built
- fixed a bug that would not allow sysint initialization if the user
  does not have write permission in the current directory
- properly cache attributes at create and write time instead of
  waiting until the first read is done


pvfs2-0.0.9
============
- added karma administration (new gtk+ gui) for interactive monitoring
  of pvfs2 servers (statistics and performance)
- fix support for creating/using/removing multiple collections (file
  systems) within a storage space
- improved pvfs2-client backgrounding (better descriptor management)
- pvfs2-ls improvements for handling multiple mount points specified
  on the same command line
- capture some more data in the mgmt server statfs object,
  pvfs2-statfs program update
- add kernel support for being an nfs exportable file system
- add kernel support for being able to mount more than one pvfs2 volume
- misc code cleanups and removals all over
- test/client/sysint program bugfixes and cleanups
- pvfstab parsing bugfix
- pvfs2-ping and pvfs2-statfs support for multiple file systems
- improved server error reporting if failure occurs before backgrounding
- fix hang on server shutdown via signal
- new maint script (pvfs2smdot.pl) for generating a graphical
  representation of the state machines and transitions (dotty format)
- updates to state machine syntax, including support for comments and
  explicit termination of state machines
- initial work on ability to gracefully cancel pending I/O operations
  within the system
- sync and truncate bug fixes
- mpi-io-test reports variance among processes
- fix potential bug in le-bytefield encoder
- use correct compiler flags with Intel cc
- fixed and enhanced the pvfs2-mkspace program for creating/removing
  collections and storage spaces
- adjusted all gossip masks to have a standard prefix

	
pvfs2-0.0.8
===========
- many alpha platform improvements, including configure check passes,
  compilation fixes, and vfs fixes (alignment/overflow bugs)
- pvfs2-genconfig quiet mode improvements
- removed extraneous sample server configuration files from source
  tree (can now be generated at compile time)
- kernel mmap/readahead cache improvements and bug fixes
- improved pvfs2-server signal handling, error reporting, and handling
- added a configure/compile time option for allowing function
  backtraces on critical errors (see ./configure --help) and backtrace
  documentation for analyzing what they mean (see doc/coding/)
- properly implement the rmdir operation through the kernel interface
- improved dbpf-attr-cache error handling and serious bug fixes (race
  condition and potential memory corruption fixes)
- race condition fixes on the trove dbpf-thread code, job thread
  manage, and job desc queueing code
- a complete re-write of client side system interface lookup operation
  that now handles path components such as '.' and '..' and allows
  better absolute and relative recursive symlink resolution, including
  a new client debugging keyword/level specific to the lookup
  operation
- added a symlink test to the pts test suite
- added some test shell scripts to the test/client/sysint directory,
  mostly useful for stressing the new lookup operation
- kernel and client side i/o path improvements that now gracefully
  handle errors such as the case of i/o happening on a file that is
  removed by another process
- implemented a previously unimplemented kernel method (inode:getattr)
- pvfs2-client command line parsing bug fix (no longer crashes on
  invalid args)
- improvements to several test programs (in test/client/sysint)
- removed several files and function that are no longer needed
- on disk storage format is now versioned
- bound acache size, while it's only holding invalid entries and
  growing too large
- powerpc file size listing fixed in pvfs2-ls
- added appendices to quickstart to cover a few more scenarios
- more sanity checks in remove path (in particular for directories)
- reorganized thread management for kernel / userspace communication
  used by pvfs2-client
- some pvfs2-ls bug fixes


pvfs2-0.0.7
===========
- re-worked architecture of metadata storage (generic dspace attrs are
  used instead of a separate keyval/data pair)
- added a server-side (trove-dbpf) attribute write-through caching
  layer for caching generic attributes and keyval/data pairs that are
  user configurable
- added a readahead data cache specifically for vfs mmap-read and
  execution, improving their performance greatly (running, editing,
  compiling, etc on a pvfs2 volume is now much more responsive)
- fix size reporting using 'du' through the vfs interface
- GNU/Linux PowerPC 32bit support, including the 2.6.x kernel
  interface
- updated pvfs2-genconfig to account for new config file format
- fixed an I/O bug that caused data access problems on some multiple
  I/O server configurations
- removed extra berkeley db error reporting since it's not integrated
  with our gossip error reporting system.  can now be explicitly
  enabled using a new configure option --with-berkdb-debug
- fixes to state machine compiler to workaround hangs on some machines
- new scripts in maint/build for building and testing PVFS2
- better balancing (randomization) of metadata server selection when
  creating new files and directories
- various error msg cleanups (in several components)
- mutex locking improvements, allowing support for NPTL thread
  implementations and also improving performance for some operations
- fixed a bug in client side lookup that can cause nested entries
  across multiple meta servers to work incorrectly (does not affect
  kernel interface)


pvfs2-0.0.6
===========
- improved kernel truncate support
- fixed kernel ioctl return values (so that 'tar -xv[z|j]f' can work
  on pvfs2 volumes)
- minor configuration file format changes
- improved performance monitoring framework
- pvfs2-vis-bw-2d tool for server throughput monitoring
- many symbol name cleanups
- removal of deprecated code
- kernel inode link count fixes
- bucketized (single indirection) 'on-disk' representation of bstream
  and keyval files in the host storage space
- a pvfs2_rmspace (opposite of mkspace); can be invoked by server
  using the -r command line option
- added kernel module highmem support
- renamed attribute cache 'pcache' to 'acache'
- large file support bug fixes
- improved client sysint rename implementation (state-machine)
- improved signal handling in pvfs2-client
- switch to a new protocol encoder which translates requests and
  responses into a machine-independent format, allowing
  interoperability between 32- and 64-bit machines and little- and
  big-endian machines.
	
	
pvfs2-0.0.5
===========
- clean compilation on 64-bit machines
- vfs stability improvements during I/O, including across client
  restarts
- statfs reporting improvements (closer to correct)
- sysint remove method fix to properly clean up datafiles
- partial path symlink resolution support
- vfs symlink resolution/following support (including partial path)
- added sysint parameter to sys_lookup that dictates if the final
  object on lookup should be resolved if it's a symlink
- runtime options to choose request encoder (see pvfs2tab man page)
- new, much faster, default flow protocol
- streamlined support for threaded and non-threaded server builds


pvfs2-0.0.4
===========
- improved truncate support (pcache usage/integration)
- kernel truncate support (improved file size reporting)
- removed several run-time verbose (expected) warnings
- fixed a handle rollover bug in extentlist handler
- fixed bit-rotted non-threaded trove/job compilation
- improved client sysint readdir implementation (state-machine)
- improved client sysint mkdir implementation (state-machine)
- improved client sysint setattr implementation (state-machine)
- improved client sysint lookup implementation (state-machine)
- symlink resolution/following support
- multiple metadata server configurations are now supported
- pvfs2-genconfig can now generate multiple metadata server
  configurations
- pav and pvfs2-genconfig now run in 'perl -w' mode w/o any warnings
- added event logging framework, instrumented a few code paths
- example tools to manage event log (pvfs2-set-eventmask and
  pvfs2-event-mon-example)
- started some example perf monitor visualization tools, src/apps/vis
  subdir
- new network encoding for heterogeneous systems (le-bytefield)
- env variable to set client side debugging level

	
pvfs2-0.0.3
===========
- more pts tests for pvfs2 datatypes
- ability to specify flowprotocol in pvfs2tab file per fs
- truncate implementation
- new flow design document
- statfs implementation
- rewritten mgmt interface, and several new functions
- pvfs2-statfs admin tool
- configurable handle timeout on server
- fixed symbol name collisions with pvfs1
- better sigpipe handling
- added backtrace feature to gossip_lerr()
- non interactive mode for pvfs2-genconfig
- request scheduler support for timer events
- server performance counters
- mgmt functions and example tool (pvfs2-perf-mon-example) for
  gathering real time performance statistics from servers
- added CREDITS file
- addition of PAV (PVFS auto volume) tool for automated test runs
- kernel rename() improvements
- import of mpi-io-test program
- redhat style rc script for server
- addition of administrative mode for servers 
- pvfs2-set-mode admin tool to toggle admin mode for file system
- mgmt API hooks necessary for fsck and dumping fs
- beginning of pvfs2-fs-dump tool, that can show file system structure
  and potential problems, optional dotty output
- "make dist" build target
- removal of depricated test programs
- man pages for many admin tools etc.
- new/updated quickstart, users guide, and status document, README,
  and INSTALL
- removal of depricated design documents
- request scheduler support for batch/list operations
- many many many bug fixes and code cleanups
- vfs mmap and execution support (read-only)

	
pvfs2-0.0.2
===========
- server side memory leaks almost entirely eliminated                         
- configuration file options for specifying BMI and Flow modules              
- job level thread management optimizations                                   
- integration of a buffer cache into tree (not yet hooked up)                 
- support for symlinks                                                        
- support for vfs symlinks (can exist; can't be followed)                     
- symlink attributes are now able to be added to the pcache                   
- BMI infiniband driver merged in
- new pvfstab format and parsing code
- kernel module reports big block size on stat
- job api changes to prevent client side race conditions
- improved I/O path attribute caching


pvfs2-0.0.1
==========
- limited initial public release
