2016-06-06
	3.6.25 release.
	reiserfsprogs: use com_err in reiserfs_open
	reiserfscore: fix "new_insert_key may be used uninitialized..."
	reiserfsprogs: fix issues with inline functions
	man: Fixes a little glitch in the man page.
	manpages: escape dashes
	fsck: remove namesys.com reference in error text
	reiserfscore: constify struct pointer arguments
	reiserfscore: constify strings
	reiserfslib: add basic extended attribute helpers
	reiserfslib: add file data and directory iterators
	mkreiserfs: move block_size_ok out of reiserfscore
	debugreiserfs: fix incorrect memset size in unpack_stat_data
	reiserfsprogs: remove dead code
	debugreiserfs: fix use after free while closing log
	reiserfsprogs: add helpers for constant endian routines
	build: introduce shared libreiserfscore.so and export it
	reiserfsprogs: convert reiserfs_filsys_t from structure to pointer-to-structure
	reiserfsprogs: annotate for endian safeness
	reiserfsprogs: fix remaining sparse warnings
	reiserfsprogs: Fix sparse "warning: Using plain integer as NULL pointer"
	sparse: move bitops functions to include/misc.h
	reiserfscore: rename usearch_by_position to reiserfs_search_by_position
	reiserfscore: make reiserfs_open's filename argument const
	swab: protect le32_to_cpu and friends against being defined twice
	reiserfs_fs.h: Eliminate overlays in offset_v2 helpers
	reiserfscore: move endian helpers for offset_v2 into header
	reiserfs_fs.h: Fix ifndef for multiple inclusion
	cleanup: remove unused argument to reiserfs_invalidate_buffer
	cleanup: remove dead code
	cleanup: remove unnecessary fs pointer passed with buffer_infos
	cleanup: factor out buffer_info initialization into helpers
	cleanup: rename key and item_head accessors to more friendly names
	cleanup: remove trailing whitespace
	cleanup: run indent with the Linux Kernel style across all code
	cleanup: rename common structure names
2013-08-25
	3.6.24 release.
	reiserfsprogs: autogenerate the version number in the man pages
	journal: fix division by 0 with one transaction in log (crash)
	CREDITS/CONTACT: remove non-historical references to namesys.com
	resize_reiserfs: fix > 8TB printf formatting
	man: create links to common-prefix command names
	reiserfsprogs: add symlinks for debugreiserfs and reiserfstune
2013-07-01
	3.6.23 release.
	clean up build environment
	clean up io-failure-emulation logic a bit
	mkreiserfs: stop printing credits
	reiserfscore: add support for register_printf_specifier
	reiserfsck: support `fsck -f -n`
	reiserfscore: fix uninitialized variable warning in print_indirect_item
	reiserfsprogs: fix -Wpointer-sign warnings for blocksize and position
	debugreiserfs: fix dereferencing type-punned pointer warning
	reiserfsprogs: fix unsigned char with strlen/strcmp/strncpy warnings
	reiserfsprogs: fix printf formatting warnings
	reiserfsprogs: fix set-but-not-used gcc warnings
	reiserfsprogs: remove autoconf-generated files
2012-10-16
	3.6.22 release.
	- Fix signedness issues for large file systems
	- fix use after free with fsck_progress
	- configure: use AC_MSG_NOTICE rather than `echo`
	- install standard {fsck,mkfs}.reiserfs symlinks
2009-01-09
	3.6.21 release.
2009-01-09
	Patches from Jeff Mahoney:
	- reiserfsprogs-mkreiserfs-quiet.diff
	- reiserfsprogs-large-block-warning.diff
	- reiserfsprogs-fsck-mapid.diff
	- reiserfsprogs-external-journal-changes.diff
	- reiserfsprogs-remove-stupid-fsck_sleep.diff
	- reiserfsprogs-mkfs-use-o_excl.diff
	- reiserfsprogs-enforce-block-limit.diff
	- reiserfsprogs-large-fs.diff
	- reiserfsprogs-better-fsck-a-behavior.diff
	- reiserfsprogs-remove-dependency-on-asm_unaligned.h.diff
	- reiserfsprogs-progress.diff
	- reiserfsprogs-reorder-libs.diff

	Patches from Ludwig Nussel:
	- mkreiserfs-set-the-owner-of-the-root-directory-to-the-calling-user.diff

	Patches from Edward Shishkin:
	- reiserfsprogs-disable-small-block.diff
	- reiserfsprogs-new-version.diff
2004-10-13
	3.6.19 release.
2004-09-22
	Some bug fixes:
	- stop handling directory item if it has been removed on fsck pass0
	- handle correctly cases when hash functions return 0
	- additional check for wrong order of hashes when generation counters
	differ.
2004-08-18
	{get|set}_unaligned macroses fix for broken powerpc linux kernel 
	headers.
2004-08-18
	Patches from Jeff Mahoney:
	- warnings cleanups
	- sd_blocks check fix for quota
	- make fsck -a works quitely
	- fix the definition of BLKGETSIZE64
2004-08-03
	3.6.18 release.
2004-06-18
	Make the oid map code endian safe.
2004-05-27
	Syncing host & journal devices after replaing every transaction.
2004-05-26
	Do not left uninitialized fields in item headers before insertion.
2004-05-25
	Fixes in unaligned access to unformatted block pointers.
2004-05-24
	Make reiserfsck to handle suse's block allocator changes correctly.
2004-05-04
	3.6.17 release.
2004-04-30
	a few minor bugs were fixed:
	- mark changed leaves as dirty;
	- overflow at the huge hole insertion.
2004-04-05
	man pages were rewritten.
2004-03-22
	move 'unpack' program to 'debugreiserfs -u'.
2004-03-18
	3.6.14 & 3.6.15-pre1 releases.
2004-03-16
	reiserfsprogs
		a few bugs were fixed:
		in the journal replay code;
		in the balancing code when removing items from broken leaves;
		in the mount entry detection code with mtab handling.
2004-03-04
	reiserfsprogs
		a fix for the cross compiling when generating include/credits.h
2004-02-27
	reiserfsprogs
		a bug in the spec file was fixed.
2004-02-26
	reiserfsck
		a bug with setting the file size limit was fixed.
2004-02-17
	reiserfsprogs
		make bynaries to be 'position independent' when dynamically
		linked to libc.
2004-02-17
	3.6.13 release.
2004-02-13
	reiserfsprogs
		a few bugs were fixed in the mount entry detection code.
	3.6.13-pre1 release.
2004-02-06
	3.6.12 release.
2004-01-26
	3.6.12-pre3 release.
2004-01-21
	A few bugs were fixed:
	*reiserfsck
		- break from the pass2 loop correctly;
	*resizer
		- calculate the new fs size correctly;
		- parse new size parameters correctly;
		- checks for the new fs size are fixed;
2004-01-15
	*reiserfsprogs
		UUID support is rewritten -- link to libuuid instead of 
		our own UUID support.
2004-01-12
	*reiserfsprogs
		A fix for mount entry detection.
2003-12-17
	*reiserfsck
		A bug in rebuild-sb was fixed.
2003-11-24
	*reiserfsck
		Reboot is needed (0x2) return code was added.
2003-10-03
	*reiserfs_resizer
		Some checks before shrinking are added avoiding segfault in
		some cases.
2003-09-29
	*reiserfsprogs
		bad block support is enabled and fixed.
2003-09-23
	*reiserfsprogs
		fix for counting block number on block devices with block
		size greater then 4k.
2003-09-18
	*reiserfsck
		ro mounted filesystems are allowed to be checked.
2003-08-22i
	*reiserfsck
		fix for the journal of the minimal size
2003-08-01
	*reiserfsprogs
		3.6.11 release.
2003-07-30
	*reiserfsck
		2 bugs were fixed:
		- 64bit architecture related;
		- object attributes related.
2003-07-16
	*reiserfsprogs
		Credits were changed.
		A pair of them are printed at mkfs time.
	*reiserfsprogs
		3.6.9 release.
2003-06-25
	*reiserfsprogs
		Bugs were fixed:
		- in reiserfsck rebuild-sb of relocated journal;
		- in reiserfstune --no-journal-available;
		- in bitmap handling during resizing;
		- in mkreiserfs with notstandard journal on the main device 
		with not standard offset;
		- in not standard journal creation.
2003-05-29
	*reiserfsprogs
		Bugs in journal traversing and in rebuild-sb were fixed.
2003-05-20
	*reiserfsck
		Forks another process with openned file descriptor of the 
		partition being checked when fscking on boot and sleep for 
		5 secs to avoid reading of all bitmaps on mount again.
2003-05-16
	*mkreiserfs
		A bug with not standard journal cretion was fixed.
	*reiserfsprogs
		3.6.8 release.
2003-05-07
	*reiserfsck
		Exit codes were fixed;
		--yes option was added into fsck
	*mkreiserfs
		--quiet option was added into mkfs
2003-05-06
	*reiserfsprogs
		A bug in journal replaying code when the only transaction 
		exists was fixed.
2003-05-01
	*reiserfsprogs
		Make fsck to proceed when wrong journal parameters in the journal
		header on a fs with standard journal detected fixing them with the
		warning.
	*reiserfsprogs
		3.6.7 release.
2003-04-24
	*reiserfsprogs
		3.6.6 release.
2003-04-01
	*reiserfsprogs
		Bug with flushing buffers on bad file descriptor was fixed.
	*reiserfstune
		Bugs with not standard journal were fixed.
2003-03-13
	*reiserfsck
		Leaves recovery was improved - if some items are detected, try
		to recover the leaf even if block head is corrupted.
2003-03-04
	*reiserfsck
		The objectid handling was improved, significant speedup at
		semantic pass and lost+found pass.
2003-02-27
	*reiserfsprogs
		The check if the last block on fs is readable was moved from
		bitmap check to fs_open.
		Check transactions content before replaying, sware on invalid
		content instead of replay attempts, print about results.
	*reiserfsprogs
		3.6.5 release.
2003-02-21
	*reiserfsck
		a critical bug on pass0 of rebuild-tree with overflowing while
		checking unformatted item offsets was fixed.
	*reiserfsprogs
		3.6.5-pre2 release.
2003-02-20
	*reiserfsck
		reiserfsck -a (started at boot) replays journal, checks error 
		flags in sb, bitmaps, fs size, 2 levels of internal tree and 
		switches to fixble mode if any problem is detected. For root 
		fs fixable cannot be performed (as fs is mounted) and just 
		--check will be done.
2003-02-14
	*reiserfsck
		fix-fixable does not relocated shared object ids anymore.
		Bug in relocation - entry key was not updated correctly with 
		the new key of relocated file.
2003-02-12
	*reiserfsprogs
		Journal replay was improved - check blocks if they are journable
		before replaying; - replay only transactions which has trans_id
		== last replayed transaction trans_id + 1.
2003-02-10
	*reiserfsprogs
		le bitops operations were added back to avoid arch dependence 
		with including asm/bitops.h - we should use le operations even
		on be mashins.
2003-01-31
	*reiserfsprogs
		Warning messages about the broken hardware were improved.
2003-01-30
	*reiserfsprogs
		Check for bits in ondisk bitmaps after the last valid bit was
		added - all these bits should be set to 1.
2002-12-13
	*reiserfsck
		Keep only permanent fields of the super block, but not the whole
	       	super block, in separate memory while replaying.
2002-12-11
	*reiserfsck
		While openning the journal check that journal parameters in 
		super block and in jheader mathches; Advice to run rebuild-sb
		if not. While rebuilding super block, do the same check and ask
		the user if he wants to rebuild the jheader or continue without 
		the journal or he wants to change the start of the partition 
		before using reiserfsck.
2002-12-04
	*reiserfsprogs
		3.6.5-pre1 is released.
2002-12-02
	*reiserfsck
		a few bugs were fixed:
		- bug in balancing code led to abort when a leaf could be viewed 
		as a super block;
		- bug in checking statdata size for symlinks - there cannot be a 
		hole at the end of symlink.
2002-11-28
	*reiserfsck
		pass0 does not need a true objectid map, just those objectids
		which are not used. This sppedups pass0 a lot as many memoves
		are eliminated.
	*reiserfsck
		bug with item format for symlinks was fixed.
2002-10-02
	*reiserfsprogs
		3.6.4 is released.
2002-09-24
	*reiserfsck
		bitmap handling was improved: fix-fixable fixes not only those 
		blocks of bitmap which are wrongly marked as unused, but those
		which are wrongly marked as used also.
2002-09-10
	* reiserfsck
		fix-fixable fixes item header formats, check complains about 
		wrong ones.
	* reiserfsck
		check/fix-fixable does not complain about/fix file sizes if
		safe link exists.
2002-08-30
	* reiserfsck 
		user recieves a warning if dma mode/speed is descreased - it 
		could happen due to hardware problems.		
2002-08-20
	* reiserfsprogs
		Warning/error messages were changed to more user friendly form.
2002-08-15
	* reiserfsck
		Correction of nlinks on fix-fixable was disabled, because
		fix-fixable zeroes nlinks on the first pass and wants to
		increment them on semantic pass. But semantic pass is skipped
		if there are fatal corruptions.		
2002-08-11
	* reiserfsck
		exit codes were fixed
2002-08-08
        * reiserfsck
		a critical bug in journal replaying was fixed.
	* reiserfsprogs
		called 3.6.3.
2002-06-06
	* reiserfsck
		speedup for pass2: avoid checking whether a file body should
		be rewritten every time we have another item to insert into it.
2002-05-30
	* reiserfsck
		speedup for pass2: avoid checking whether a file should be
		relocated on every insertion of a new item into it. Check it
		only for the first time. 
2002-06-27
	* reiserfsprogs
		called 3.6.2
2002-05-20
	* reiserfsck
		speedup for pass2: do not check whether a file should be relocated 
		if the file body was previously deleted from the tree and is
		inserted again.

2002-05-15
	* reiserfsck
		speedup for pass2: insertion by many pointers at once was
		added
2002-05-10
	* reiserfsck
		fix-fixable is able to fix wrong nlinks.
		check makes some check about nlinks also.
2002-04-30
	* reiserfsck 
		delete direntries of old format in new format directories
2002-03-29
	* reiserfsprogs
		bad blocks support added.
2002-03-15
	* reiserfsprogs
		different blocksize support added.
2002-02-18
	* debugreiserfs 
		new option -J, prints a journal header.
2002-02-10
	* reiserfsprogs
		a few speedups were added. 
2002-02-05
	* reiserfsprogs
		optimization of the work with disk buffers.
2002-01-28
	* mkreiserfs
		zeroing the first block on the device if not SPARC
2002-01-26
	* reiserfsck
		a few speedups were added.
2002-01-20
	* debugreiserfs
		investigation of unused space added (-D -U options, hidden)
2002-01-16
	* reiserfsprogs
		support for UUID and LABEL was added
2002-01-15
	* reiserfstune
		creates a standard journal from a non-standard
2001-12-25
	* reiserfsck 
		Handles safe links.
2001-12-03
	* reiserfsck
		Filenames output during tree scan is now nicely scrolled
		left and right, when entire line does not fit the screen.
2001-11-20
	* reiserfsck
		Can rebuild superblock properly.
2001-11-03
	* reiserfsck
		Can now backup all data which get changed during fscking
		and can rollback all changes.
2001-10-30
	* reiserfsprogs
		mkreiserfs/reiserfsck/reiserfstune/debugreiserfs work with
		relocated journal
2001-09-30
	* debugreiserfs
		super block editor (-C -B 16)
2001-08-23
	* reiserfsck
		--fix-fixable becomes a mode, can fix everything what does
		not need to rebuild a tree.
		--fix-non-critical option moved to --ajust-file-size option,
		work in --fix-fixable and --rebuild-tree modes.
2001-07-19
	* mkreiserfs
		can now create non-standard journal: journal size,
		offset, device may now vary
	* reiserfstune
		initial release. Allows to change journal parameters for
		existing filesystems
	* reisrefsck
		it now sets "consistency checked" flag after
		--rebuild-tree and --check which did not find anything
		broken
	* man pages
		updated
	
2001-06-25
	* mkreiserfs
		long options (--journal-device, --journal-size)
	* library
		reiserfs_create, reiserfs_create_journal
		
2001-06-20
	* global changes
		Jeff's patch (safe endianness) is merged (with changes)
		mlock is used to estimate amount of memory available
	
2001-06-14
	* reiserfsck
		update journal header when transaction is replayed
	
2001-06-13
	* reiserfsck
		lost+found's mode is set to drwx------ after lost+found pass
	
2001-06-08
	* library
		functions to deal with journal

2001-06-05
	* global change
		Unified access via get_/set_ macroses is added for fields
		of struct key, struct item_head, struct
		reiserfs_journal_desc/commit, struct block_head, struct disk_child
	
2001-05-22
	* global change
		Access to super block's fields are unified vid get_sb_xxx
		and set_sb_xxx macroses
	
2001-05-05
	* called 3.x.0k-pre4
	* reiserfsck
		entries in lost+found are removed on pass 0
	
2001-05-03
	* mkreiserfs
		first 64k get zeroed now. This kills JFS if it was there
	* reiserfsprogs.spec (Anthon van der Neut)
		prereleases can be built by rpm now
		link from /sbin/mkreiserfs to /sbin/mkfs.reiserfs
		guess about reiserfs kernel support is added
	
2001-04-16
	* reiserfsck
		in --check mode it exits with 0 if there were no
		corruptions found, 1 if there were only corruptions
		fixable by --fix-fixable or 2 if --rebuild-tree is
		required
		man page updated, simple example of using reiserfsck is
		added

2001-04-15
	* mkreiserfs
		bug in confirmation dialogs fixed
	
2001-04-13-Friday
	* reiserfsck
		--hash option makes reiserfsck to skip blocks having
		directory entries created with other hash. It is useful
		together with --scan-whole-partition
		--background option allows to fork fsck end exit (useful
		for running remotely)

2001-03-31
	* reiserfsck
		empty lost directories do not get linked into /lost+found
2001-03-28
	* reiserfsck
		--nolog option is added
	
2001-03-26
	* called 3.x.0j
	* reiserfsck
		with -o it tries to fix "objectid sharing" problem
	* reiserfsprogs.spec (Anthon van der Neut)
		rpm can be built as non-root
		link from reiserfsck to fsck.reiserfs
		rpm -e reiserfsprogs should now work without rmdir of /
2001-03-13
	* reiserfsck
		--quiet option is added
		--fix-bogus-files option is added to fix transprently
		corrupted modes and to fix sizes which are longer that
		real file size
		directory item verifying changed
		-u has been replaced with -b to pass reiserfsck the list
		of block to build tree off
		-c is added to have pass 0 to save bitmap fo leaves found

2001-03-10
	* called 3.x.0h
	* configure.in
		RPM_OPT_FLASG is added to CFLAGS (Anthon van der Neut)
	* reiserfsck
		-u option is added. It should save time when repeating
		--rebuild-tree
		hash hits statistic is added on pass 0
	
2001-03-07
	* reiserfsck
		-V option to print version and exit added
		--fix-fixable changed: directory's sd_size and st_blocks
		corrections, removing of entries pointing to nowhere
	
	* resize_reiserfs
		man page is added

2001-03-05
	* resize_reiserfs
		Marcel Waldvogel <mwa@arlq.wustl.edu>'s user interface and
		error messages improvements

2001-03-01
	* mkreiserfs
		-q option is added (Larry Auton <lda@winux.com>)
	* reiserfsck
		--fix-fixable changed: bitmap correction commented
		out. Correction of broken slots of indirect items and
		corrections of dir entry state added
	
2001-02-23
	* called 3.x.0e
	* reiserfsck
		not tested on 2.2
		is now able to work with regular file (2.4.x is needed for that)
		lost+found fixed: it now first links directories then
		files. Still not good as it can not pull out deep directory

2001-02-19
	* called 3.x.0c
	* reiserfsck
		--fix-fixable option is added. So far it only repairs bitmaps
		and free block count when they mismatch
	* library
		reiserfs_find/add_entry added
	
2001-02-05
	* mkreiserfs
		can make filesystem with 1 data block
		3.6 format is now default

2001-01-20
	* portability
		Zam ran the reiserfsprogs on alpha
	* resizer
		Zam managed to resize few partitions.
	* reiserfsck
		pass0 deletes items which are out of order, tries to fix
		items with zeroed k_objectid or k_dir_id and to throw
		items which are transparently out of order and tries to
		fix "." and ".." of directory items. Pass0 corrects also
		corruptions in directory items
	* man pages:
		get included into dist when doing 'make dist'
	* mkreisrefs
		explains what is mininal size of reiserfs partition which
		can be created		
	
2001-01-12
	* reiserfsck:
		--interactive option is added
	* debugreiserfs:
		few bugs fixed
  	
2001-01-07
	* reiserfs library:
		started with reiserfs_open, reiserfs_close, bitmap tools
	* reiserfsck:
		filesystem mounted read-only can be checked
		number of options decreased
		journal replay fixed
		pass 0 added.
		fsck can be stopped after the tree is built. (should safe time when debugging)
		a lot of work still left
	* debugreiserfs:
		metadata packing changed
		added a feature to intentionally corrupt filesystem (should be useful for fsck debugging)
	* resizer:
		not updated yet
	
	* man pages:
		updated for all three progs

