=== RELEASE 1.0.3 ===

Fri Oct 28 12:59:04 CEST 2016

	By default, mkspadfs won't pad files to a cluster size

	The purpose is to mitigate the possibility of leaked file sizes when the
	filesystem is used on encrypted device and the device was not
	overwritten prior to creating the filesystem

Mon Oct 17 20:19:26 CEST 2016

	Fixed a bug that errors were displayed on multiple lines in syslog

Sat Sep  3 15:43:59 CEST 2016

	Support the FIEMAP ioctl

Sun Aug 21 16:10:52 CEST 2016

	Fixed a peformance problem - metadata readahead didn't work with block
	size 512 or 1024

Wed Aug  3 01:05:58 CEST 2016

	Add module parameter minimize_inode_size. It reduces memory allocated
	for an inode.

	When the parameter is not set, an inode contains extent cache for each
	CPU - so the inode size grows with the growing number of CPUs.

	When the parameter is set, an inode contains just one cached extent and
	a mutex is used when accessing it. It reduces the size of an inode. The
	downside is that the locking reduces performance.

Tue Aug  2 22:51:20 CEST 2016

	Fix a warning in cpumask_check when the kernel is compiled with
	CPUMASK_OFFSTACK.

Sat Jul  9 17:31:16 CEST 2016

	Synchronize the bmap ioctl (so that concurrent bmap and other activity
	won't result in misbehavior) and test bmap argument for file size limit.
	The FIBMAP ioctl is only accessible to root, so unprivileged user can't
	trigger crashes with this.

=== RELEASE 1.0.2 ===

Sun Jun 19 18:37:05 CEST 2016

	Increased default metadata prefetch to 512kiB
	Fixed a bug that prefetch was reported incorrectly in /proc/mounts

Sat Jun 18 23:50:33 CEST 2016

	Fixed BUG_ON(spadfnode(i)->mmu_private > spadfnode(i)->disk_size) when
	the filesystem runs out of space and when block size is different from
	page size.

=== RELEASE 1.0.1 ===

Mon Apr  4 20:40:58 CEST 2016

	Updated for kernels 4.5 and 4.6-rc
	mkspadfs --no-trim and --trim options to disable or enable trim
	Support the silent mount option, so that no log messages are reported
	when the kernel attempts to detect filesystem type

=== RELEASE 1.0.0 ===

Tue Nov 17 20:52:59 CET 2015

	Fixes for asynchronous I/O. spadfsck can be built with
		make spadfsck CFLAGS="-DLINUX_AIO -laio"
	or
		make spadfsck CFLAGS="-DPOSIX_AIO -lrt"
	to use Linux or Posix asynchronous I/O (Linux aio has better
	performance). If none of these options is selected, spadfsck will use
	the readahead syscall.

Tue Nov 17 15:14:24 CET 2015

	A new spadfsck flag --extend, it extends the filesystem after device
	size was increased. If it is used on mounted filesystem, the filesystem
	will be extended on next reboot.

Tue Oct 27 21:58:15 CET 2015

	Disable metadata prealloc, it caused metadata zone fragmentation

Tue Oct 27 18:22:00 CET 2015

	Drop the allocator lock while a trim command is in progress, it improves
	latency while trimming

Mon Oct 26 20:33:11 CET 2015

	Use kmalloc instead of vmalloc if possible

Sun Oct 25 23:44:54 CET 2015

	Use hash table instead of walking the full list of inodes, it improves
	performance when working with many files

Sun Oct 25 17:21:22 CET 2015

	Use the space before superblock for data or metadata

Sat Oct 24 23:25:23 CEST 2015

	Fixed occasional "no shadow when resurrecting blocks" error

Mon Oct  5 23:22:11 CEST 2015

	Fixed performance degradation on fragmented filesystem due to prealloc

Mon Oct  5 22:21:41 CEST 2015

	Fixed occasional error "can't find apage for block" that was caused by
	preallocation code

=== RELEASE 0.9.17 ===

Sat Aug 22 16:39:09 CEST 2015

	Make spadfsck not correct missing superblock, root directory or
	corrupted apages in automatic mode during boot because under some
	circumstances these corrections could cause more damage. The user should
	run spadfsck manually to fix these problems.

Mon Jul 27 18:52:00 CEST 2015

	Fixed a crash with quotas on kernels 3.19 and newer

Sun Jun 28 14:29:06 CEST 2015

	Update directory times when modifying a directory

Sat May  9 11:23:31 CEST 2015

	Implement preallocation on metadata and small files
	- it improves performance and reduces space fragmentation

=== RELEASE 0.9.16 ===

Sat Mar 21 21:30:42 CET 2015

	Support fstrim

=== RELEASE 0.9.15 ===

Sat Jul 12 21:15:49 CEST 2014

	Fixed performance degradation on big filesystems due to the apage cache
	Clear apage cache when splitting an apage

Thu Nov 21 01:17:50 CET 2013

	Fixed performance degradation when the filesystem was running out of
	space

Wed Nov 20 01:48:42 CET 2013

	Fixed misnamed arguments in /proc/mounts

Sat Nov  9 23:24:12 CET 2013

	Ignore sync() syscall if there is nothing to sync

Sat Oct  5 17:46:19 CEST 2013

	Fixed lockdep warning with more than 8 cores
	Fixed uninitialized variable warning

Wed May 22 21:42:23 CEST 2013

	Returned number of used blocks was off-by-one for newly created
	directories when compiled without quota

Sat Apr 27 20:59:42 CEST 2013

	Make it work without CONFIG_LBDAF with devices smaller than 2TiB
		(previously the limit was 1TiB)
	Fix BUG when compiled for IA-64 with gcc 3 or lower.
	Fix structure alignment on ARM OABI
	Make it work with kernels as far as 2.6.8

=== RELEASE 0.9.14 ===

Sun Nov 18 00:15:19 CET 2012

	Fixed a bug if the user used multiple extended attributes in different
	namespaces

=== RELEASE 0.9.13 ===

Thu Aug 18 21:27:22 CEST 2011

	Fixed a possible checksum failure on anode
	Anode locking was noticeably simplified
	Don't increase crash count on background if the filesystem is idle

Wed Jul 27 02:21:12 CEST 2011

	Fixed a crash with too high NR_CPUs
	Lowered per-inode memory consumption with too high NR_CPUs

=== RELEASE 0.9.12 ===

Sun May  8 16:31:52 CEST 2011

	Extended attributes
	Maintain directory sizes
	Quota support
	Spadfsck fixes

=== RELEASE 0.9.11 ===

Tue May  4 05:34:36 CEST 2010

	Many other changes:
	Root inode attributes can be changes
	Stable inode numbers
	Fixed a memory read beyond buffer end
	Fixed a crash count non-working when using remount,ro or remount,rw
	Spadfsck fixes
	Fixed a bug when file is truncated to its actual size
	Fixed an extent cache bug

Sat Nov  1 20:35:12 CET 2008

	Don't allocate from metadata zone if the file rolls over the end of disk

Tue Sep  2 05:44:47 CEST 2008

	Fixed for non-barrier devices on Linux 2.6.26. They broke it somehow.

Sun Aug 24 01:58:40 CEST 2008

	Fixed BUG on mount when the disk format is corrupted
	Buffer readahead

=== RELEASE 0.9.10 ===

Thu Aug 21 05:31:57 CEST 2008

	Support 2.6.27-rc3 kernel

Tue Jul  8 05:26:59 CEST 2008

	Use mutexes instead of semaphores because they are faster
	Use mpages

=== RELEASE 0.9.9 ===

Sat Jun 21 19:17:18 CEST 2008

	Updated for kernel 2.6.26-rc*

Thu May 15 22:05:28 CEST 2008

	Fixed some buffer reference leaks

Wed May 14 21:38:02 CEST 2008

	Support for kernel 2.6.24, 2.6.25
	Fixed memory leak when mounting failed

=== RELEASE 0.9.8 ===

Sat Nov 10 19:29:09 CET 2007

	Support for 2.6.23 kernel

=== RELEASE 0.9.7 ===

Tue Jul 31 03:33:27 CEST 2007

	Allow extending files with truncate
	(and fix a bug when truncating by a small amount could truncate few more
	bytes)

Tue Jul 10 04:01:34 MET DST 2007

	Make it compile on 2.6.22

Tue Jul 10 03:41:54 MET DST 2007

	Fixed creating invalid extended attributes when runing git

Mon Apr 30 01:32:28 MET DST 2007

	Fixed bug in spadfsck causing in rare cases that it needed to be run
	twice to correct all bugs

Mon Apr 30 01:17:19 MET DST 2007

	Use write barriers when available

	The idea of barriers is cool (it allows to do sync without blocking
	blocking activity), the implementation is terrible --- barrier write
	fails on barrier-incapable device, so filesystems need to have two paths
	for syncing (Ext3 and XFS have two commit code paths too).

	It would be much better if WRITE_BARRIER requests always succeeded
	(eventually degrading to WRITE requests on incapable devices) and
	filesystem could ask the block layer via some function if barriers are
	safe.

	Note that when the device drops support for barriers while mounted, it
	will break this filesystem (it won't damage data but it will prevent any
	operations from being commited). I don't know if changing barrier
	support while mounted is possible.

	There is a bug in IDE and ATA drivers that they don't support cache on
	standards earlier than ATA-6 (the author apparently read ATA-6/7/8 docs
	and didn't realize that in ATA 4 and 5 test for presence of FLUSH_CACHE
	command is different). IDE driver reports that it doesn't support
	barriers (even if the cache is turned off) and this filesystem will be
	marked for fsck in case of crash.

Sun Apr 29 16:28:01 MET DST 2007

	Hold buffers for few last used apage maps --- improves performance when
	doing too many alloc/free operations on the same place

Fri Apr 27 05:36:28 MET DST 2007

	Optimized locking for SMP (avoid cacheline bouncing when more CPUs lock
	for read intensively)

=== RELEASE 0.9.5 ===

Thu Mar 22 23:56:33 MET 2007

	Fixed an error when freeing extent that was larger than 2TB and block
	size was larger than 512. The error couldn't lead to data corruption,
	only to the situation that part of the extent was not freed and error
	message was written to log

Tue Feb 20 16:27:38 MET 2007

	NEW_WORKQUEUE should be defined from 2.6.20 kernels, not from 2.6.19
	Fixed compilation problems with 2.6.19

=== RELEASE 0.9.4 ===

Sun Jan  7 22:16:05 CET 2007

	Make it compile on kernel 2.6.19 and 2.6.20-rc

Sun Jan  7 21:13:47 CET 2007

	Changed an inode allocation from GFP_KERNEL to GFP_NOFS --- removes a
	deadlock possibility and creates a failure possibility (that most other
	filesystems also have)

	It should be probably changed to allocate inode outside the lock with
	GFP_KERNEL

Sun Jan  7 20:30:41 MET 2007

	Fixed abuse of i_blkbits --- it would cause error on 2.6.19 but it
	didn't compile anyway

=== RELEASE 0.9.3 ===

Wed Jan  3 05:25:29 MET 2007

	Directories were corrupted and/or kernel locked up if someone tried to
	create filename longer than 255 characters, now it returns ENAMETOOLONG
	(found with fsstress)

Tue Jan  2 03:05:08 CET 2007

	Fixed getting bad hints on allocator (the bug didn't damage data but
	lead to fragmentation and bad performance)

Tue Jan  2 02:07:49 MET 2007

	Tree structure changed so that utilities are in separate subdirectories
	(the conding style is still pending change, but I want to do some
	testing after that)

Tue Jan  2 01:26:06 MET 2007

	Reverted 64-bit inode numbers until -EOVERFLOW is resolved

Sat Dec 23 23:27:53 MET 2006

	Fixed readdir looping when excessive hash collisions happened

Sat Dec 23 22:39:45 MET 2006

	spadfsck fixes:
	Fixed crash when root directory was dnode (approx > 80 entries)
	Fixed memory leak (only noticeable with --debug-malloc)
	Fixed ininite loop during apage rebuild
	When user declined to fix errors, it could errorneously report
		unreliable device
	When allocating chains (this could only happen because of hash
		mismatch), it did not correctly set prev pointer
	When recovering directories, it did set badly up-dnode pointer (and
		set it again correctly on second run)

Sat Dec 23 21:02:09 MET 2006

	Return 64-bit inode numbers on 2.6.19
	Reduced ino_t collision possibility (to devices > 256Gib) on previous
	kernels or on old applications that use old 32-bit ino_t

Sat Dec 23 20:18:01 MET 2006

	Inode counts in statfs now report total and free blocks in metadata zone
	(but the filesystem is able to operate even if it runs out of metadata
	zone and there is free space in other zones)

	I hope that 0 free inodes statistics won't confuse applications,
	according to POSIX they shouldn't rely on statvfs results

Sat Dec 23 20:15:56 MET 2006

	Fixed possibility that readdir skips some entries if directory is split
	between successive readdir calls

Sat Dec 23 04:16:38 MET 2006

	Fixed reading memory few bytes beyond buffer end

Sun Dec 10 21:06:25 cet 2006

	Added comments to code

Sun Nov  5 01:10:09 MET 2006

	Removed a forgotten debug print from spadfsck

=== RELEASE 0.9.2 ===

Fri Nov  3 19:37:43 MET 2006

	Use largefile when available instead of _llseek (some broken newer
	systems don't have _syscall macros)
	Fix compile of utilities with libc5

Fri Nov  3 19:36:54 MET 2006 Jan Engelhardt <jengelh@linux01.gwdg.de>

	Build using tools from modules/kernel-version/build directory, not from
	kernel source

=== RELEASE 0.9.1 ===

Fri Nov  3 02:12:31 CET 2006

	Fixed compilation on 2.6.18 and 2.6.19rc kernels

=== RELEASE 0.9.0 ===

Fri Nov  2 22:44:17 MET 2006

	First public release

vim: textwidth=80
