nilfs-1.0.10  Tue Jul 18, 2006 JST

	* An ``order'' mount option was newly added.  The option specifies
	  write order semantics with one of two arguments: a ``strict''
	  argument gives strict in-order semantics, and a ``relaxed''
	  argument applies the ordered data semantics equivalent to those
	  of ext3.  The default semantics was changed from the former to
	  the latter.  The relaxed option reduces the frequency of
	  inserting checkpoint blocks for O_SYNC overwrites, fdatasync(),
	  and mmap writes, and then improves the write performance.

	* Turned on the barrier mount option by default.  We also reduced
	  the frequency of the I/O barrier from every checkpoint down to
	  the superblock to minimize overheads.
	
	* Fixed a bug that could cause the statistical information such as
	  inode count not to be set in RO-mounts.

	* Fixed a bug that could make the sketch file on RO-mounts empty
	  under the condition of the existence of a RW-mount.

	* Fixed a bug that might disorder the position of a partial
	  segment just after an I/O error occurs.  The bug was inserted
	  at nilfs-1.0.8.

	* The explicit linkage of the libncurses are added for "inspect"
	  where libreadline is used, because some distributions require it.

	* Fixed a bug that unused memory inode structure is linked to
	  free list twice on some race condition. A new buffer state bit 
	  `BH_NILFS_InodeOnList' is introduced.

	* Fixed a bug that destroys a b_blocknr entry of buffer_head of
 	  newly allocated (not on disk) inode, when the attached page
	  is locked. (page.c nilfs_inode_bread())
	
	* Fixed a bug that repeatedly recommends running fsck even though
	  the recovery has completed successfully.

	* Fixed a bug that causes the mismatch of a buffer count for
	  btree node blocks when an I/O error occurs.

	* Rewrote the code handling btree errors.

	* A guard against the buffer overrun problem of sysfs attribute
	  files was inserted for linux-2.6.16 and older versions.

	* A /proc fs file `fs/nilfs/debug_option' (it appears if the NILFS
	  is built with make option CONFIG_NILFS_DEBUG=y) returns all
	  debug class names and the verbose levels.  Write actions to
	  `debug_option' become incremental.  See docs/debug.txt for
	  details.

nilfs-1.0.9  Tue May 23, 2006 JST

	* Some preparations toward the kernel 2.6.17.

	* Mmap write was supported experimentally.

	* Remount was supported; now NILFS can be used as a root
	  partition.

	* A race condition found in BIO completion routines was removed.
	  This modification eliminates a possibility of an internal
	  failure which seems to be difficult to reproduce.

	* Exclusive access control around the sysfs interface became more
	  strict.

	* Copynilfs: removed a conflict of --sparse and --inplace options
	  of rsync, which causes an error for rsync 2.6.7.

nilfs-1.0.8  Thu Mar 23, 2006 JST

	* Kernel 2.6.16 was supported.
	
	Changes to realize the cloning of a NILFS partition:

	* A passive rw-mount mode was experimentally implemented. This
	  is an FS support to realize cloning of a NILFS partition;
	  a copy destination partition is mounted in this mode.

	* The segment constructor was improved so as to write out data
	  blocks more efficiently in the case that the number of dirty
	  data blocks exceeds a threshold or pages are reclaimed by
	  the kernel.

	* Three sysfs attribute files, ``sc_mjcp_freq'', ``sc_ctime'' and
	  ``sync'', were newly added (See docs/tuning.txt).  The sc_ctime
	  is an interface to control the timestamp of segments for the
	  passive mode and is readonly for the normal rw-mode.  Other
	  files are valid also for the normal rw-mode.  The sync file,
	  which triggers construction of a complete logical segment, is
	  available as an alternative of the sync command.
	
	* The copynilfs, a prototype backup tool of NILFS partitions, were
	  added with its document and auxiliaries.  See docs/copynilfs.txt.
	
	Other changes:

	* The inspect command links with GNU readline.
	  -- Require readline-dev (or something) package.

	* Inspect: New command line option -e was added.  In listcp command,
	  print date in second from epoch, not human readable format.

	* Internal flags of segment constructor were placed in their
	  proper position (nilfs_sc_info).

	* A handy command ``listpseg'' that corresponds to a built-in
	  command of the inspect, was added.

nilfs-1.0.7  Wed Mar  8, 2006 JST

	Fixed following problems:

	* Write position could back to head of the current full segment in
	  mount time, which leads to destroy existent data. This may occur
	  when doing unmount/mount a RW partition while mounting a
	  snapshot.

	  -- A bug of recovery logic. load_last_segment() was revised, and
	     a few members in a nilfs_sb_info struct were moved to
	     the_nilfs struct to inherit the write position.

	* On-disk alignment of some structures differs between 32bit and
	  64bit platforms and lacks compatibility.

	  -- GCC packed attribute was added to the troubling structures as
	     a workaround.

	* Detaching the loop device that was mounted multiply at once
	  would fail.

	  -- nilfs_get_sb() was corrected so as to release a block device
	     properly.

	* ``File size limit exceeded'' error occurred when making files
	  more than 2048 bytes on the X86_64 platform.

	  -- A function nilfs_max_size() was corrected.

	* Superblock was not written back to disk periodically (updated
	  only when unmounted).

	  -- We have revised writeback functions for the superblock:
	     nilfs_setup_super, nilfs_commit_super, __write_super.

	* The second or later mount options were ignored in RO mounts.

	  -- A parser bug. NILFS parses them in two phases. First phase
	     parser (nilfs_identify) was revised not to destroy the option
	     string.

	Other changes:

	* The inspect command became able to handle the Ctrl-C
	  signal. (i.e. supported interrupt to prompt; useful when listing
	  checkpoints)

	* On-memory superblock structure (nilfs_sb_info) was cleaned up.

	* FS cleanup routine (nilfs_put_super) was reordered to ensure
	  that all dirty blocks were written back before segment
	  constructor was destructed.

	* Usage of the autofs+NILFS environment became better versed.

	* Debug compile options were organized. Now the CONFIG_NILFS_DEBUG
	  option can disable all other debug options. Proc entries
	  (/proc/fs/nilfs/*) became coupled to this option.

	* Unnecessary header file inclusions were removed.

	* The listcp sub-command was enhanced to allow users to browse
	  checkpoints through web browsers.

nilfs-1.0.6  Thu Feb 16, 2006 JST

	* Segment fragmentation was reduced.

	* A bug in making device node on NILFS was fixed.

	* Checkpoint Sketch feature was introduced.
	  You can store any small data in NILFS checkpoint for memorandum.
	  See docs/sketch.txt in NILFS tarball.

	* Some table definitions for the sysfs interface were simplified
	  by using macros define_nilfs_rw_attr() and
	  define_nilfs_ro_attr().

	* Autofs was supported.  See misc/autofs/README.

	* The listcp sub-command that lists checkpoints was added.

	* A script tool to write a text message or a file into the
	  checkpoint sketch was added (tagcp).

	* Inspect command line arguments -s and -o were added.
	  -- inspect [-s sketchnumber [-o outputfile]] device
	     Inspect write the sketch data on specified number of checkpoint.
	     If -o option was omitted, stdout was used.

nilfs-1.0.5  Mon Jan 30, 2006 JST

	* A hang bug in dirsync option was fixed

	* A bug causes BUG_ON() at add_timer() (writer daemon bug) was
	  fixed.

	* Direct I/O read now works.  Direct I/O write will fall back to
	  buffered write.

nilfs-1.0.4  Wed Jan 18, 2006 JST

	* Kernel 2.6.10 through 2.6.15 were supported.

	* A barrier mount option was implemented experimentally.

	* Included document files in docs directory.

nilfs-1.0.3  Tue Nov 22, 2005 JST

	* Kernel 2.6.13 and 2.6.15 were supported.

nilfs-1.0.2  Tue Nov  1, 2005 JST

	* Deadlocks and memory leaks were fixed.

nilfs-1.0.1  Thu Oct  6, 2005 JST

	* A minor bug was fixed.

nilfs-1.0.0  Mon Sep 26, 2005 JST

	* The first release.

--
ChangeLog,v 1.41 2006/07/18 09:00:28 ryusuke Exp
