0.6.12 (api:64/proto:62)
------
  *) With the non-blocking IO hints, a bug was introduced that could
     lead to partially sent IO hints. -> loss of connetion. 
     This issue is fixed now.
  *) Fix to range check of nice value in drbdsetup
  *) Updates to build system (Makefile, Makefile.SuSE-9.0)

0.6.11 (api:64/proto:62)
------ 
  *) Updates to the debian directory (mostly by David Krovich)
  *) Documentation updates by Lars Ellenberg and Helmut Wollmersdorfer.
  *) Updates to the build system by Lars Ellenberg.
  *) Sending of IO hints is done non-blocking, by Lars Ellenberg.
  *) Code to make IOCTLs work on 64/32 bit platforms (PPC64, SPARC64, AMD64)
  *) Some minor code cleanups by LGE.

0.6.10 (api:64/proto:62)
------ 
  *) With 0.6.9 there was a bug introduced which prevented the sending 
     of ACK packets during resync. Fixed.
  *) A fix to drbdsetup's wait_connect command.
  *) Replaced all invocations of the sleep_on() family functions with the 
     invocations of the wait_event() macros. This removes lost wakup events 
     and race conditions.
  *) New implementation of drbd_wait_ee(). This makes the 
     "(BUG?) Moving bh=%p to done_ee" go away.
  *) Handle the case if vmalloc() of the bitmap fails.

0.6.9  (api:64/proto:62)
------ 
  *) New module build system (using kernel source tree build system)
  *) New net section option 'ko-count'. It allows you to kick out a 
     secondary node which does no longer process data in acceptable time. 
     Its default value is 0 which disables this feature.
  *) Changing syncgroups while resync runs has shows now the correct behaviour.
  *) In case thread creations fails DRBD would deadlock on its own
     semaphore. Fixed now.
  *) BKL is no longer used on Linux-2.4.x.
  *) Now you can stack mapping block devices like LVM2 (and maybe md) on 
     top of drbd (a one character fix).
  *) drbdsetup wait_connect on a StandAlone node looked like a timeout and
     forced primary. fixed.
  *) if drbdsetup wait_* in fact did timeout this looked like a failed ioctl.
     this bug was newly introduced in 0.6.8. fixed.
  *) A fix to a race in _drbd_alloc_ee(). You could trigger this race if
     your filesystem uses a blocksize < 4K and your machine has multiple CPUs.
     By Eric W. Biederman.
  *) A maybe bugfix regarding calls to free_page() by Eric W. Biederman.
  *) A cleanup patch to drbd_process_done_ee() by Eric W. Biederman.

0.6.8  (api:63/proto:62)
------ 
  *) Two fixes to the sync-group functionality.
	
0.6.7  (api:63/proto:62)
------ 
  *) A fix to a bug that could cause data corruption if you use a 
     other blocksize than 4k to access the DRBD device.
  *) A fix to a SMP race in the syncer code. The problem was tirggered
     when using DRBD on QLogic fiber channel adapters.
  *) Replaced various calls to sleep_on() variants with the wait_event()
     macros. -- This removes potential (, non-critical) SMP races.
  *) This release includes the sync-group option.

0.6.6  (api:62/proto:62)
-----
  *) In the 0.6.5 release the secondary_remote command was badly broken,
     it succeeded when it should fail silently. This is fixed now.
  *) Probabely in all previous releases, the resyncer thread did not
     exit properly if the secondary node goes away during resync. 
     This was not fatal sind the resyncher thread did exit at soon
     as it gets a network error. This is fixed now.
  *) Some new switches to the drbd script.
	
0.6.5  (api:62/proto:62)
-----
  *) Improvements to the build system
  *) Now it is possible to tune the socket send buffer size via drbdsetup/
     drbd.conf. This is especially usefull for WAN mirroring / using
     protocol A.
  *) Compatibility code to compile DRBD under RedHat 9.0 (RH's version of
     Linux-2.4.20)
  *) Improved sample drbd.conf file

0.6.4  (api:61/proto:62)
-----
  *) Reworked build system (i.e. better Makefiles)
  *) SyncAll works forward insead of backwards. Improves performance on some
     storage controlers.
  *) Reworked /etc/init.d/drbd script (i.e. better support of different bash
     releases)
	
0.6.3  (api:61/proto:62)
-----
  *) Lockup of primary if secondary fails during resync. Fixed. (Stupid!)
  *) Probabely SMP only deadlock in the drop-conection code path.
  *) Improved connect code. (The old code could trap into a distributed
     deadlock, resulting in an endless connect/disconnect loop.)
  *) The 'BitMap too small bug' was actually caused by a patch in
     SuSE's distribution kernel. This patch makes DRBD 'more' compatible
     with SuSE's kernel.
  *) Improved code to allocate buffers for the rsynchronisation process.
     The old code allocated physical adjacent pages although the syncer
     does not need them! The old code could fail under high memory pressure.
	
0.6.2  (api:61/proto:62)
-----
  *) SMP fix in drbd_dio_end_sec()
  *) /etc/init.d/drbd knows about returncodes of fsck
  *) SUSE style rcdrbd
  *) Fixes for uninstall Target of the Makefiles.

0.6.1  (api:61/proto:62)
-----
Since the last one should have been 0.6, this is 0.6.1:
  *) Rewrote the receiver code. This one eliminates inter-device deadlocks,
     as far as I can tell (and is a big step in the direction of active/active)
  *) Introduced a new Packet into the protocol. The "WriteHint" drastically 
     improves performace of protocol C in conjunction with a FS with mount
     option "sync".
  *) Fixed a bug that could cause a OOPS on the primary if the connection 
     is lost when the send queue is not empty.
  *) Fixed a bug that could cause data corruption on the secondary if you 
     put high IO-load on the primary during resynchronisation.
  *) Fixed a bug that could cause the secondary to "forget" to send some
     ack packets if it is under high load during resynchronisation.
  *) devfs support by Lelik P.Korchagin <lelik@price.ru>.
  *) Fixed a bug that could crash a task in kernel space on the primary 
     in the moment the secondary leaves the cluster.
  *) A few SMP-only bugs removed.
  *) The state files are now written with O_SYNC.
  *)Droped the postponepackets; Checkeing the liveliness via a second
     TCP connection (msock). -- No more timeout in case of the standby
     node has high load.
  *) If an application which is writing to a drbd device receives a signal
     while it sleeps in DRBD's send_msg call, the connection is dropped.
     -- Fixed this bug. (You could observe this with tiobench)
  *) Fixed serious bugs in the meta-data handling.
  *) Split the code of the module into 7 files
  *) Added reasonable support for Linux-2.4.x.
     Yes you can put in on top of RAID/LVM and you can even stack
     multiple drbd devices.
  *) Completely removed the SYNC-LOG and implemented a better scheme
  *) Removed the mbdh.h interface since it was useless
  *) Implemented correct signal sending (not longer done from interrupt time)
     Based on a patch from Ard van Breemen <ard@telegraafnet.nl>
  *) Implemented correct removing of requests from the transfer log
  *) Fixed a "can not guess name" bug in drbdsetup
  *) implemented /etc/init.d/drbd XXX status
  *) From now on the drbd wire protocol and the ioctl interface carry
     interface version numbers, which are independend of the release
     number. E.g. You can combine a drbd device of release 0.6.1 and
     0.5.8, since both have protocol version 58. You can even use
     drbdsetup of 0.5.8 to configure the module of the 0.6.1 release.
	
0.5.8
-----
A lot of new features: (This release should be named 0.6)
  *) codecleanup of the on-the-fly counters
  *) drbdsetup is not splitted into a disk and a net part / syntax changed
  *) syncer rewritten. Now a lot faster but currently only woking with
     4K based file systems. (mkfs -b 4096)
  *) Meta-data management implemented. => DRBD is now able to select
     the node with the up-to-date data to become primary after a cluster 
     restart.
  *) datadisk / drbd scripts rewritten two times :) Now they are in
     perl and we have a new configuration file named /etc/drbd.conf

0.5.7
-----
Bugfix release:
  *) Fixed the bh_count > 0 bug.
  *) Fixed the multiple-timeouts-bug.
  *) Fixed a bug when working with a fs with a blocksize other than 4096
  *) Applied the patch from Juri Haberland against the datadisk script.

0.5.6
-----
No updates to the mirroring core. (It seems to be stable)
A lot of updates to the "user interface"
  *) Better log-messages and better messages of drbdsetup.
  *) Fixed a few crashes of drbdsetup/ioctl interface.
  *) It is not longer possible to use an already mounted partition.
  *) It's possible to unconfigure a drbd device now.
  *) Fixed the "infinite error messages" when a wrong disk size was given.
A better datadisk script (Thomas Mangin contributed this, thanks)
Some work on the protocol:
  *) Cleanup
  *) Added automatic reconnect
  *) An intace connection is monitored by "ping" packets, thus
     a secondary will notice a broken connection immediately.
Found and fixed a 64 Bits problem in the bitmap based syncer.

0.5.5
-----
SMP and ext3 fixes to the module.
Scripts should work on RedHat distributions now.
(Automatic) support for more than two devices.

0.5.4
-----
No more zombies, when a connection is canceled.
An important SMP fix. (It seems to work on SMP now)
A lot of small improvments.(benchmarking, stress testing... )

0.5.3
-----
More sanity checks.
Fix to protocol C.
Script for automatic benchmarking.
New heartbeat scripts.

0.5.2
-----
Improved the behaviour upon loss of connction. Now it
always goes into WFConnection state instead of Unconnected.

Added a command to drbdsetup to force a run of the basic syncer.

Things to be fixed: Heartbeat scripts, protocol C on SMP machines.

0.5.1
-----
Fixed the lockup upon loss of connection on SMP machines.
Added a kludge to make use with heartbeat possible.
Added scripts for use with heartbeat.

0.5
---
The code was considerably changed and enlarged.

There are now three wire protocols.
A) A write operation is complete as soon as the data is
   written to disk and sent to the network.
B) A write operation is complete as soon as a reception 
   acknowledgement arrived.
c) A write operation is complete as soon as a write
   acknowledgement arrived.

The basic syncer was replaced by a bitmap-based syncer. The new
one only updates the blocks which were modified during the
absence of the newly joined node.

A huge load of bug fixes.

Finally I cleaned up the drbdsetup utility. Now all the
features are accessible with command line options.

0.4
---
There is a basic syncer now. It will bring a newly joined
secondary node up to date by copying each block.
It is working at 250KB/second (hard coded in drbdsetup for now).

IO errors on the local disk are now reported as if there
was an io error on drbd.


0.3
---
There is a new timeout. If the primary node cannot send (TCP!)
within the timeout, it falls back into unconnected operation.

You can also disable the timeout (by setting it to zero), but in
case of a failure of the secondary node, your primary node will block!

Currently the timeout is hard coded into drbdsetup (3 Seconds).


0.2
---
This time I worked a lot looking into all possible deadlocks...
I think if you do not use any loop-back device it should
work without deadlocking. It is not working on top of the loop
block device and it is not working via the loop-back network!

This time it should handle all block size issues, and thus
reiserfs is feeling happy on top of drbd.


Status of drbd-0.1.tar.gz
-------------------------
This is a proof-it-is-no-vapo-ware-release and not more!
It is the first time it is somehow working without immediately crashing
my machine (you can "even" unload the module). It is not able to 
handle block sizes other than 1024 and there is not a single line of code
of the sync-a-new-secondary stuff yet.
The used port is hard coded into drbdsetup (7788) for now.
I have tested it on an Intel box and an alpha machine.


