nilfs-2.0.14  Sat May 23, 2009 JST

	* fix memory leak in nilfs_ioctl_clean_segments; this will fix the
	  memory leak problem slipped into nilfs-2.0.13.  The memory leak
	  arises every time the garbage collection of nilfs runs.  Thanks
	  to Kentaro Suzuki for finding this problem.
	* set bio unplug flag for the last bio in segment

nilfs-2.0.13  Sun May 17, 2009 JST

	* check size of array structured data exchanged via ioctls; this
	  adds missing sanity checks to ioctls and prevents memory access
	  overrun in kernel code due to incorrect argument data of the
	  ioctls.
	* ensure to clear dirty state when deleting metadata file block;
	  this will fix the following failure during GC:
	     nilfs_cpfile_delete_checkpoints: cannot delete block
	     NILFS: GC failed during preparation: cannot delete checkpoints:
	     err=-2
	* fix lock order reversal in nilfs_clean_segments ioctl
	* fix possible circular locking for get information ioctls
	* fix circular locking dependency of writer mutex
	* fix possible recovery failure due to block creation without
	  writer; this will fix a boundary condition bug on mount time
	  recovery.
	* replace BUG call in nilfs_dat_translate with WARN_ON
	* fix possible mismatch of sufile counters on recovery
	* fix wrong accounting in nilfs_sufile_set_error
	* fix improper return values of nilfs_get_cpinfo ioctl
	* rename nilfs_fs.h to nilfs2_fs.h to catch up in-tree code.

nilfs-2.0.12  Mon Mar 30, 2009 JST

	* support kernel 2.6.29 for the record.
	* fix malfunction of nilfs_get_suinfo ioctl in which active flags
	  were marked on wrong segments.  This will fix the recent GC
	  problem causing filesystem corruption which was reported by
	  David Arendt and Andreas Hartmetz.  Thanks for feedback!
	* fix duplicate brelse calls in nilfs_sufile_set_error().
	* fix false detection of lockdep checks for recursive locking
	  around meta data files and bmap semaphores.

nilfs-2.0.11  Fri Mar 13, 2009 JST

	* fix a compilation error on kernel 2.6.29-rc7.
	* introduce nanosecond timestamp; this resolves the problem around
	  the tar program that it sometimes fails to expand symlinks.

nilfs-2.0.10  Sat Mar  7, 2009 JST

	* introduce secondary super block for improving reliability
	* mark minor flag for checkpoints created by internal operation.
	  This allows userland application to identify whether each
	  checkpoint is created by file system change or internal operations
	  such as garbage collection or checkpoint mode change.
	* simplify handling of active state of segments; this reduces loc
	  of segment constructor.
	* clean up sketch file. Now .sketch is treated as a regular file.

nilfs-2.0.9  Wed Mar  4, 2009 JST

	* fix endian issue in checksumming on super block. Big endian
	  machines are affected by this change.  For big endian machines,
	  you can keep compatibility against future releases of existing
	  partitions by once mounting them with this version.

nilfs-2.0.8  Thu Feb 19, 2009 JST

	* change ioctl API to fix architecture dependent problems. In the
	  prior versions, for example, 32bit nilfs-utils malfunctioned on
	  the x64-64 kernels.  This change requires new utilities, i.e.
	  nilfs-utils-2.0.8, and the prior utilities don't operate on
	  this.  The disk format has not changed.  The detail changes are
	  as follows:
	  - use fixed sized types for ioctl structures
	  - remove timedwait ioctl command
	  - remove compat ioctl code
	  - extend nilfs_sustat ioctl structure to eliminate volatile_active
	    flag; this allows to simplify segment writer implementation.
	* use unlocked_ioctl instead of old ioctl to avoid using big kernel
	  lock.
	* convert BUG_ON and BUG calls triggerable from ioctl into innocuous
	  error handlings or WARN_ON calls.

nilfs-2.0.7  Wed Feb 11, 2009 JST

	* fix comilation errors on kernel 2.6.29-rc1.
	* fix buggy behavior seen in enumerating checkpoints.
	* fix wrong counting of checkpoints and dirty segments reported by
	  Reinoud Zandijk.
	* fix miss sync issue for do_sync_mapping_range which can be called
	  from the sync_file_range() system call.
	* remove several bmap wrapper macros.
	* clean up indirect function calling convention used in
	  bmap/btree/direct to follow the normal kernel coding style.
	
nilfs-2.0.6  Mon Jan 12, 2009 JST

	* fix compilation errors on kernel 2.6.28.
	* fix gc failure on volumes keeping numerous snapshots.
	* remove compat code to support old kernels prior to 2.6.18.
	* fix problem of memory allocation in ioctl (revised patch to use
	  order 0 allocation).
	* return error instead of causing a BUG_ON() failure when btree runs
	  into an invalid node block.
	* add tag files of gtags to .gitignore.
	* avoid double error handlings of nilfs_transaction_end() by dividing
	  it to nilfs_transaction_commit() and nilfs_transaction_abort().
	* do cleanups, add some comments and debug code.

nilfs-2.0.5  Thu Oct 23, 2008 JST

	* support kernel 2.6.27.
	* fix problems of memory allocation in ioctl.
	* fix reset problem of DAT block count.
	* fix possible infinite loop in nilfs_dispose_gcinode_list.
	* ensure writeback of super block;  sync_dirty_buffers() clears the
	  dirty flag of specified buffer even if it returns -EOPNOTSUPP
	  (failed barrier request) or -EIO (I/O error). The previous 
	  implementation takes this wrong, and causes a possibility to miss
	  writeback failure of the super block.  This version corrects the
	  issue.
	* make buffer read concurrent for gc cache. The previous gc cache
	  code waits for buffers for each data or node block while reading
	  blocks to be moved.  This makes it in parallel by separating their
	  submissions and waitings, and this would mitigate I/O overhead during
	  GC.
	* enhance disk format compatibility of the cpfile, sufile, and dat
	  file.  Althouth entry sizes of these meta data files are given in
	  the super block, these values were not used in the meta data files.
	* use standard page cache for btree node caches.  Former versions used
	  a peculiar page cache for btree nodes.  This finally removed it, and
	  greatly simplified the entire source code.
	* unify dat allocator and inode allocator.  Finally these two similar
	  allocators are integrated into one persistent object allocator.
	* add nilfs2.txt, which is a document supplied with the nilfs2 kernel
	  patch set.
	* Cleanups; remove unused functions and macros. remove unnecessary
	  gc inode spinlocks, redundant code. apply kernel common functions.
	  remove new checkpatch warnings.

nilfs-2.0.4  Wed Aug  6, 2008 JST

	* fix hangup problem while deleteing huge files:
	  Alexander Schier had reported that OOM killer was invoked while
	  deleting very large files. This turned out to be the problem of
	  a btree truncate routine, which creates a number of dirty blocks for
	  huge files without permitting to write them out.
	  A similar problem was also found in file truncation.
	    This fixes these problems by allowing NILFS2 to write out dirty
	  blocks during terminating or truncating bmap of huge files.
	  Thank you Alex for reporting this issue.
	* supported kernel 2.6.27-rc1 experimentally.
	* remove redundant code and resolve new checkpatch warnings.

nilfs-2.0.3  Mon Jul 14, 2008 JST

	* add 2.6.25 and 2.6.26 to the supported kernel versions.
	* fix a compile-time error for the kernel 2.6.26 in case of
	  CONFIG_NILFS_DEBUG=y.
	* fix build errors on ia64 machines.
	* fix hang problem after read/write remount.
	* improve writeback implementation to avoid page locks and allow read
	  accesses against page cache during writebacks.
	* eliminate the prepare dirty flag on B-tree node pages to reform
	  readability of the B-tree cache code.
	* revise README.
	* Cleanups; remove unused code or redundancy in the code,
	  resolve several type of checkpatch warnings, and so forth.

nilfs-2.0.2  Wed Mar 26, 2008 JST

	* fix mount failure of nilfs-2.0.1 for 2.0.0 filesystem.
	  Thanks to Adrian Ulrich for his quick report.
	* fix another mis conversion of sector_div() in alloc.[ch].
	* replace PAGE_DEBUG() + BUG() pairs with PAGE_BUG() that prints
	  some more information on the specified page also for no debug
	  version.

nilfs-2.0.1  Mon Mar 24, 2008 JST

	* add nfs support.
	* fix arithmetic range overflow of alloc.h.
	* fix gcc-4.2 warnings on 64-bit machines.
	* make many changes to avoid scripts/checkpatch.pl errors and warnings
	  due to violations of the Linux kernel coding style.  Most of them
	  are lexical adjustments, but include some influential changes such
	  as removal of typedefs.
	* prevent premature writeback of super block.
	* incorporate changes on nilfs_fs.h to prepare for future extensions.
	* adjust mount-time revision check of disk format not to break
	  forward compatibility among NILFS versions with a same major
	  revision.
	* extend the period of copyright notice to include 2008.
	* use kthread_run() instead of kernel_thread().
	* remove unused declarations and needless functions.
	* integrate symlink.c into namei.c.
	* remove expanded rcs keywords.
	* remove comments to overwrite emacs mode.
	* remove C99 style comments.
	* add .gitignore.

nilfs-2.0.0  Mon Feb 18, 2008 JST

	* Removed fastcall specifiers to fix a compile-time error on kernel
	  2.6.25-rc2.
	* Reflected the changes of ioctl() interface on the previous release
	  to ioctl32().  This fixes errors of nilfs-utils arising on 32-bit
	  Linux environments with a 64-bit kernel.
	
nilfs-2.0.0-testing-9  Wed Feb 13, 2008 JST

	* Supported kernel 2.6.25-rc1 experimentally.
	* Fixed compiler errors that occur where CONFIG_LBD is not defined.
	* Fixed an elementary bug that causes a NULL-pointer dereference
	  exception when a snapshot mount was tried with an invalid option.
	* Fixed a hang problem arising under a near disk full condition.
	  This change simplifies error handlings of such condition and the
	  sematics of reserved disk space;  now it works as a margin just for
	  the cleaner.  Additionally, a lower limit was adopted for the number
	  of reserved segments to improve the stability on small partitions.
	* Fixed a few bugs of write routines that cause hang problems.
	  Thanks to Gergely Gbor for his helpful reports and cooperation.

nilfs-2.0.0-testing-8  Thu Dec 27, 2007 JST

	* Fixed a timing problem of a shrinker that causes a critical list
	  corrption of B-tree node pages.
	* Fixed a dead lock problem of the segment constructor that may occur
	  when issuing direct I/O reads.
	* Fixed memory allocation failures on ioctl.c due to fragmentation.
	* Fixed a few minor bugs around the B-tree node buffers.
	* Revised the segment buffer for simplicity and for maintainability.
	* Separated some declarations for the list of full segments from the
	  segment constructor (seglist.h).  This nasty file would be removed
	  in a future release.
	
nilfs-2.0.0-testing-7  Thu Nov 29, 2007 JST

	* Supported kernel 2.6.24-rc3 experimentally.
	* Fixed failures in case where the block size is smaller than
	  the page size.
	* Fixed a compatiblity issue that causes ioctl errors where the
	  kernel and userland programs have different integer length.
	* Fixed a leak bug of btree node buffers at nilfs_btree_mark().
	* Fixed possible failures due to missing exclusion controls of
	  nilfs_bmap_propagate() and nilfs_bmap_assign().
	* Fixed a possible race problem in nilfs_prepare_write().
	* Revised source code around btree node buffers, pages, and shadow
	  DAT in order to get rid of timing bugs and leak bugs.

nilfs-2.0.0-testing-6  Mon Oct 22, 2007 JST

	* Fixed a bug that may cause corruption of meta data files or
	  regular files. This fix would resolve serveral serious problems
	  and improves the stability especially for small memory machines.
	* Fixed a minor bug that led to a failure when deleting checkpoint
	  directly through ioctl.

nilfs-2.0.0-testing-5  Mon Oct 15, 2007 JST

	* Fixed a deadlock problem and block address translation errors
	  caused by a missing initialization of the btree node cache on
	  shadow DAT.

nilfs-2.0.0-testing-4  Thu Oct 11, 2007 JST

	* Supported kernel 2.6.23
	* Fixed a security hole arround nilfs_find_entry()
	* Inserted some printks to analyze problems arround shadow dat pages
	  for garbage collection.

nilfs-2.0.0-testing-3  Tue Jul 24, 2007 JST

	* Supported kernel 2.6.22
	* New ioctl ``nilfs_sync()'' is introduced
	* Fix BUGON issue at nilfs_btnode_prepare_change_key()
	* Fix BUGON issue at __nilfs_btnode_get_page()
	* Fix bug around nilfs_delete_inode()
	* Fix deadlock under memory shortage condition
	* Supported kernel 2.6.23-rc1 experimentally

nilfs-2.0.0-testing-2  Tue Jun 20, 2007 JST

	* Applied readahead to meta-data files to improve performance.
	
nilfs-2.0.0-testing  Wed Jun 13, 2007 JST

	* The first release.
	* Implemented the Garbage Collector.
	* Rewrote almost all of the source code.
