
Changelog from dmraid 1.0.0.rc12 to 1.0.0.rc13		2006.10.11


FIXES:
------
o pdc.c: magic number check
o metadata.c: rd_type() returned wrong unified_type for asr



Changelog from dmraid 1.0.0.rc11 to 1.0.0.rc12		2006.09.22


FIXES:
------
o sil.c: quorate() OBO fix
o activate.c: handler() OBO fix
o added log_zero_sectors() to various metadata format handlers

FEATURES:
---------
o added SNIA DDF1 support (IBM)
o added reload functionality to devmapper.c (IBM)
o sil.[ch]: added JBOD support


MISCELANIOUS:
-------------
o streamlined devmapper.c




Changelog from dmraid 1.0.0.rc10 to 1.0.0.rc11		2006.05.16

FIXES:
------
o jm.c:	checksum() calculation

o misc.c:
	support "%d" in p_fmt and fix segfault with wrong format identifier

o nv.c:	size fix in setup_rd()

o activate.c:
	- striped devices could end on non-chunk boundaries
	- calc_region_size() calculated too small sizes causing large
	  dirty logs in memory

o isw.c: set raid5 type to left asymmetric

o toollib.c: fixed 'No RAID...' message


FEATURES:
---------

o support selection of RAID5 allocation algorithm in metadata format handlers


MISCELANIOUS:
-------------



Changelog from dmraid 1.0.0.rc9 to 1.0.0.rc10		2006.02.17

FIXES:
------
o metadata.c: want_set() didn't drop sets properly
              (eg, jmicron_raid10 wanted and jmicron_raid1 not dropped)

o scsi.c: avoid retrieving too much data (Al Viro)

o sil.h: magic number fix (some arrays were not recognized)


FEATURES:
---------
o added libdmraid_make_table() to activate.c to be used by installer

o asr.[ch]: added Adaptec HostRAID support

o jm.[ch]: added JMicron JMB36x support

o added '--enable-libselinux' to configure for those who want
  to build without it

o bytorder.h: enhanced to support big endian conversion
              on little endian arch

o nv.c: support RAID5 with dm-raid45 target

o pdc.h: support additional metadata offset

o metadata.c: enhanced to support RAID4 and RAID5 mappings with dm-raid45 target


MISCELANIOUS:
-------------
o misc.c: streamlined remove_white_space() (Al Viro)



Changelog from dmraid 1.0.0.rc8 to 1.0.0.rc9		2005.09.23

FIXES:
------
o via.c: checksum() calculation;
	 stride size

o toollib.c:  memory leak in _valid_format()

o isw.c: avoid endianess conversion bug in to_cpu();
         disk status check;
	 version check to cover 1.2.02;
	 isw_write() to store metadata in correct sequence

o hpt37x.c, lsi.c, nv.c, pdc.c, sil.c via.c: streamlined grouping switch()

o hpt45x.c: added missing RAID10 to capability string

o sil.c: streamlined quorate()

o misc.c: p_fmt() missed a free_string()


FEATURES:
---------
o pdc.c: support RAID10

o commands.c: added --separator option for selectable string
	      separator character (used with --format etc.)

o display.c: support customizable column output through field
	     identifiers with -c option

MISCELANIOUS:
------------
o metadata.c: use log_alloc_err()

o format.h: introduced caps (RAID capabilities) member

o format.c: introduced get_format_caps() and free_format_caps()
	    to ease library use in installers (pjones@redhat.com)

o display.c: streamlined log_devices()

o toollib.c: stremalined collapse_delimiters()

o isw.c: streamlined isw_read_extended() and setup_rd()

o file.c: cleanup

o add /var/lock/dmraid to rpm

o avoid global variable format_names:
  - change discover_raid_devices() interface
  - saves code in toollib

o added more info to format_error output

o activate.c: display RAID string with unsupported mapping



Changelog from dmraid 1.0.0.rc7 to 1.0.0.rc8		2005.05.19

FIXES:
------
o nv.c: fixed stripe size

o sil.c: avoid incarnation_no in name creation, because the Windows
         driver changes it every time


FEATURES:
---------
o added --ignorelocking option to avoid taking out locks in early boot
  where no read/write access to /var is given


MISCELANIOUS:
------------
o some cleanups in misc.c



Changelog from dmraid 1.0.0.rc6 to 1.0.0.rc7		2005.04.07

FIXES:
------
o pdc.c, hpt37x.c, hpt45x.c: fixed size in sectors() for RAID1


MISCELANIOUS:
------------

o sil_valid() displays the area number where the checksum is invalid now.




Changelog from dmraid 1.0.0-rc5f to 1.0.0.rc6		2005.02.28

FIXES:
------
o sil status()

o _sil_read() used LOG_NOTICE rather than LOG_INFO in order to
  avoid messages about valid metadata areas being displayed
  during "dmraid -vay".

o isw, sil filed metadata offset on "-r -D" in sectors rather than in bytes.

o isw needed dev_sort() to sort RAID devices in sets correctly.

o pdc metadata format handler name creation. Lead to
  wrong RAID set grouping logic in some configurations. 

o dos.c: partition table code fixes by Paul Moore

o _free_dev_pointers(): fixed potential OOB error

o hpt37x_check: deal with raid_disks = 1 in mirror sets

o pdc_check: status & 0x80 doesn't always show a failed device;
  removed that check for now. Status definitions needed.

o sil addition of RAID sets to global list of sets

o sil spare device memory leak

o group_set(): removal of RAID set in case of error

o hpt37x: handle total_secs > device size

o allow -p with -f

o enhanced error message by checking target type against list of
  registered target types


FEATURES:
---------

o VIA metadata format handler

o added RAID10 to lsi metadata format handler

o "dmraid -rD": file device size into {devicename}_{formatname}.size

o "dmraid -tay": pretty print multi-line tables ala "dmsetup table"

o "dmraid -l": display supported RAID levels + manual update


MISCELANIOUS:
------------

o more inline comments

o libdmraid_init() now returns lib context

o check_set() enhanced to do RAID set stack unrolling and
  to check correct number of devices in sets; saves code in
  metadata format handlers

o introduced read_raid_dev() to further reduce metadata format handler code

o optimized parse_table()

o updated dmraid manual

o devmapper.c: check target type registered before trying to load table record

o misc.c: avoid find_percent().



Changelog from dmraid 1.0.0-rc4 to 1.0.0-rc5f		2004.11.24

FIXES:
------
o make suffix in hpt45x set names numeric

o HPT37x metadata format handler RAID10 grouping logic

o HPT37x/HPT45x avoid devision by zero bug
  in case ->raid_disks is zero for spares

o avoid devision by zero bug in case of stride = 0

o SIL device names / checksums

o calc_total_sectors() on unsymmetric mirrors

o Partition name suffix to make GRUB happy

o perform() could return an error without releasing a lock


FEATURES:
---------
o added NVidia metadata format handler

o quorate SIL metadata copies

o sorting order of stacked subset enhanced
  (RAID10; hpt37x, hpt45x, lsi, nvidia and sil)

o started event methods implementation in metadata format handlers

o output linefeed to .offset files for better readability (-r -D)

o use /sys/block/*/removable to avoid acessing removable devices

o display of spare devices with -r -c{0,2}

o enhanced spare device handling

o '-h' option doesn't need to stand alone any more

o -s displays top level sets only. "-s -s" shows subsets as well.

o -f allows partial qualification of format names now
  (eg, "dmraid -f hpt -r" will search for hpt37x and hpt45x formats)


MISCELANIOUS:
------------
o HPT37X shows subset name suffixes with -r

o streamlined display.c

o added lib_context* argument to alloc_disk_info() in order
  to be able to display an error message on failure

o factored basic RAID set allocation code out of
  all metadata format handler into find_or_alloc_set()

o factored RAID superset allocation code out of metadata format
  handlers into join_superset()

o streamlined endianess code using CVT* macros

o streamlined free_set() code

o check option enum valid

o introduced various metadata extraction macros to streamline
  related code (eg, RD(), RS())

o optimized format handler pre-registration checks

o avoid format handler type() method altogether by introducing
  a RAID device type member

o generalized list_add_sorted() which can be used to sort any
  "struct list_head*" which voided list_add_dev_sorted()

o find_set() modified to avoid global searches for stacked sets

o converted get_scsi_serial to fallback using SG_IO,
  SCSI_IOCTL_SEND_COMMAND and ATA identify

o introduced p_fmt() for formated string pushs in order to
  streamline activate.c; value return code of p_fmt()

o moved some paths + filenames to lib_context

o introduced RAID set flag for metadata format handlers 
  which decide to maximize capacity in unsymetric RAID0 sets

o factored out device information allocation of scan.c into metadata.c

o introduced RAID device list to library context in order to remove
  pointer from device info and be able to handle remaining RAID device
  structures better on library cleanup

o streamlined commands.c

o changed column output delimiter to ':'

o introduced various enums replacing integers


Changelog from dmraid 1.0.0-rc3 to 1.0.0-rc4		2004.09.07

FIXES:
------
o get_dm_serial fix for trailing blanks

o infinite loop bug in makefile

o unified RAID #defines

o RAID disk erase size

o avoided unnecessary read in isw_read()

o segfault in build_set() on RAID set group failure

o activation of partitions on Intel Software RAID

o allow display if tables for active RAID sets (-t -ay)

o discovering no RAID disks shouldn't return an error

o free_set would have segfaulted on virgin RAID set structures

o deep DOS partition chains (Paul Moore)

o "dmraid -sa" displayed group RAID set with Intel Software RAID
  when it shouldn't

o return RAID super set pointer from hpt45x_group() and sil_group()
  rather than sub set pointer


FEATURES:
---------

o added offset output to all native metadata logs

o started defining metadata format handler event method needed for
  write updates to native metadata (eg, for mirror failure)

o [de]activation of a single raid sets below a group one (isw)

o support for multiple -c options (see "man dmraid"):
  "dmraid -b -c{0,2}"
  "dmraid -r -c{0,2}"
  "dmraid -s -c{0,3}"



Changelog from dmraid 1.0.0-rc2 to 1.0.0-rc3		2004.08.18

FIXES:
------
o HPT37X mapping on first disk of set

o dietlibc sscanf() use prevented activation

o le*_to_cpu() for certain glibc environments (Luca Berra)

o sysfs discovery (Luca Berra)

o permissions to write on binary, which is needed
  by newer strip versions (Luca Berra)

o SCSI serial number string length bug

o valgrinded memory leaks

o updated design document

o comments

FEATURES:
---------
o added basic support for activation of LSI Logic MegaRAID/MegaIDE;
  more reengineering of the metadata needed!

o root check using certain options (eg, activation of RAID sets)

o implemented locking abstraction

o implemented writing device metadata offsets with "-r[D/E]"
  for ease of manual restore

o file based locking to avoid parallel tool runs competing
  with each other for the same resources

o streamlined library context

o implemented access functions for library context

o streamlined RAID set consistency checks

o implemented log function and removed macros to shrink binary size further

o removed superfluous disk geometry code

o cleaned up metadata.c collapsing free_*() functions

o slimmed down minimal binary (configure option DMRAID_MINI
  for early boot environment)



Changelog from dmraid 1.0.0-rc1 to 1.0.0-rc2		2004.07.15

o Intel Software RAID discovery and activation support

o allow more than one format handler name with --format

o display "raid10" sets properly rather than just "mirror"

o enhanced activate.c to handle partial activation of sets (eg, degraded RAID0)

o enhanced command line option checks

o implemented a library context for variables such as debug etc.

o fixed memory leak in discover_partitions

o fixed recursion in _find_set()

o continued writing subsets in case we fail on one because of RAID1

o format handler template update

o fixed dietlibc build

o fixed shared library configure

o use default_list_set() instead of &raid_sets where possible

o name change of list_head members to the more commonly used 'list'

o renamed msdos partition format handler to dos

o lots of inline comments corrected/updated

o streamlined tools/*.[ch]

o moved get.*level() and get_status to metadata.[ch] and changed level
  name to type
