nilfs-1.0.18 Mon Oct 22, JST 2007 * Fixed a problem that may cause corruption of data files or meta data files due to the page reclaim. nilfs-1.0.17 Tue Jul 24, 2007 JST * Supported kernel 2.6.22 experimentally. nilfs-1.0.16 Thu May 24, 2007 JST * Supported kernel 2.6.21 experimentally. * A minor change to keep a buffer of the superblock in a block device cache. * Fixed compiler warnings around kmem_cache printed on linux-2.6.14 and earlier versions. * Fixed a problem that the mkfs.nilfs cannot be compiled on Ubuntu. * Fixed a problem that recovery might take very long time when a segment summary header is broken. * Autofs: changed the checkpoint index directory. * Autofs: changed seekcp.pl to display sketch data as image in the HTML format. * Autofs: added support for the Konqueror's service menu. "Sieve Snapshots" menu displays only the snapshots including the modification of the selected file. nilfs-1.0.15 Thu Feb 15, 2007 JST * Supported kernel 2.6.20 experimentally. * Fixed a problem that makes an unwanted checkpoint when calling ftruncate() on the sketch file. This problem has arisen for the kernel 2.6.15 and the later versions. * Fixed a bug of checksum calculations that loses portability of disk image among different platforms. Old nilfs data created on big-endian machines (e.g. PPC) become not mountable by this fix. (Sorry for inconvenience.) * Copynilfs: fixed a bug of -f option that ignores checkpoint lists including cp=1. * Copynilfs: supported backup to a remote device experimentally. * Inspect: fixed a problem that may abort listcp and listpseg at a segment skipped due to an I/O error. * Autofs: changed the code not to depend on the mount point. * Autofs: added a sample /etc/init.d script. nilfs-1.0.14 Wed Oct 25, 2006 JST * Fixed a lock violation in the mmap write implementation. It causes an assertion failure on kernels where a spinlock debug option is enabled. The support of kernel 2.6.10 was stopped in relation to this change. * Fixed some bugs of byte-order conversions that cause segmentation faults or assertion failures on big endian machines. * Fixed a bug of newfs that formats a disk partition with wrong byte-order on big endian machines. * Fixed a device open failure of `inspect' that occurs on some non-i386 architectures. * Fixed a byte-order conversion bug of `inspect' that causes malfunction of its internal commands on big endian machines. * Removed "comparison is always true due to limited range of data type" gcc warnings generated on RISC architectures where char is unsigned. * Removed compiler warnings generated on some architectures where %Lu == unsigned long long != u64. nilfs-1.0.13 Thu Oct 12, 2006 JST * Supported kernel 2.6.19-rc1 experimentally. * Fixed a bug that drove mmap writes (msync) into failure on kernel 2.6.17 and the later versions. nilfs-1.0.12 Tue Oct 3, 2006 JST * Supported the kernel 2.6.18. * Fixed a bug of rollforward code that could damage blocks written with O_SYNC or fsync(). The bug wrongly set the first block to the second and the later blocks in salvaged data regions. * Fixed incorrect endian conversions for directory entry inode numbers. The bug will cause internal failures especially on big-endian machines. * Fixed a wrong definition of a bit mask in segment.c. Fortunately, the bug was harmless. nilfs-1.0.11 Tue Aug 8, 2006 JST * Fixed an assertion failure in super.c raised for snapshot mounts. * Removed unused locks from on-memory structures (nilfs_inode_info and nilfs_sb_info). 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. * Fixed a bug that may dereference NULL pointer in an error condition. Thanks Coverity for analizing the NILFS source code. * 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.89 2007-10-22 06:47:42 ryusuke Exp