diff --git a/TODO b/TODO
deleted file mode 100644
index 279d20db9989..000000000000
--- a/TODO
+++ /dev/null
@@ -1,213 +0,0 @@
- - add 'name' field to metadata type and use it.
- - use validate_geometry more
- - metadata should be able to check/reject bitmap stuff.
-
-DDF:
-  Three new metadata types:
-    ddf - used only to create a container.
-    ddf-bvd - used to create an array in a container
-    ddf-svd - used to create a secondary array from bvds.
-
-  Usage:
-    mdadm -C /dev/ddf1 /dev/sd[abcdef]
-    mdadm -C /dev/md1 -e ddf /dev/sd[a-f]
-    mdadm -C /dev/md1 -l container /dev/sd[a-f]
-
-        Each of these create a new ddf container using all those
-	devices.  The name 'ddf*' signals that ddf metadata should be used.
-	'-e ddf' only supports one level - 'container'.  'container' is only
-	supported by ddf.
-
-    mdadm -C /dev/md1 -l0 -n4 /dev/ddf1 # or maybe not ???
-    mdadm -C /dev/md1 -l1 -n2 /dev/sda /dev/sdb
-	If exactly one device is given, and it is a container, we select
-	devices from that container.
-	If devices are given that are already in use, they must be in use by
-	a container, and the array is created in the container.
-	If devices given are bvds, we slip under the hood to make
-	  the svd arrays.
-
-    mdadm -A /dev/ddf ......
-	base drives make a container.  Anything in that container is started
-	 auto-read-only.
-	 if /dev/ddf is already assembled, we assemble bvds and svds inside it.
-
-
-2005-dec-20
-  Want an incremental assembly mode to work nicely with udev.
-  Core usage would be something like
-       mdadm --incr-assemble /dev/newdevice
-  This would
-     - examine the device to determine  uuid etc.
-     - look for a match in /etc/mdadm.conf, abort if not found
-     - find that device and collect current contents
-     - perform an 'assemble' analysis to make sure we have the best set of devices.
-     - remove or add devices as appropriate
-     - possibly start the array if it was complete
-
-   Other usages could involve
-     - specify which array to auto-add to.
-       This requires an existing array for uuid matching... is there any point?
-
-     -
-
-
-2004-june-02
-  * Don't print 'errors' flag, it is meaningless. DONE
-  * Handle new superblock format
-  * create device file on demand, particularly partitionable devices. DONE
-      BUT figure a way to create the partition devices.
-              auto=partN
-  * Use Event: interface to listen for events. DONE, untested
-  * Make sure mdadm -As can assemble multi-level RAIDs ok.
-  * --build to build raid1 or multipath arrays 
-       clean or not ???
-  
-----------------------------------------------------------------------------
-* mdadm --monitor to monitor failed multipath paths and re-instate them.
-
-* Maybe make "--help" fit in 80x24 and have a --long-help with more info. DONE
-
-
-* maybe "missing" instead of <bold>missing</> in doco DONE
-* possibly wait for resync to start, or even finish while assembling.- NO
-
-* -Db should have a devices= entry if possible. - DONE
-* when assembling multipath arrays, ignore any error indicators. - DONE
-* rationalise --monitor usage:
-     mdadm --monitor
-  doesn't do as expected. DONE
-
-* --assemble could have a --update option. - DONE
-  following word can be:
-	sparc2.2
-	super-minor
-
-* mdadm /dev/md11, where md11 is raid0 can segfault, particularly when looking in the 
-   [UU_UUU] string ... which doesn't exist !
-It should be more sensible.  DONE
-
-Example:
-
-from  Raimund Sacherer <raimund.sacherer@ngit.at>
-
-mke2fs -m0 -q /dev/ram1 300
-mount -n -t ext2 /dev/ram1 /tmp
-echo DEVICE /dev/[sh]* >> /tmp/mdadm.conf
-mdadm -Esb /dev/[sh]* 2>/dev/null >> /tmp/mdadm.conf
-mdadm -ARsc /tmp/mdadm.conf
-umount /tmp
-
-
-?? Allow -S /dev/md? - current complains subsequent not a/d/r - DONE
-
-* new "Query" mode to subsume --detail and --examine.
-   --query or -Q, takes a device and tells if it is an MD device,
-   and also tells in a raid superblock is found. 
- DONE
-
-* write mdstat.c to parse /proc/mdstat file
-   Build list of arrays:  name, rebuild-percent
-  DONE
-
-* parse /proc/partitions and map major/minor into /dev/* names,
-  and use that for default DEVICE list ????
-
-* --detail --scan to read /proc/mdstat, and then iterate over these,
-    but assume --brief.  --verbose can override
-    check each subdevice to see if it is in conf_get_devs.
-    Warn if not.
-  DONE, but don't warn yet...
-
-* Support multipath ... maybe...
-  maybe DONE
-
-* --follow to syslog 
-
-* --follow to move spares around DONE
-
-* --follow to notice other events: DONE
-     rebuild started
-     spare activated
-     spare removed
-     spare added
-
-------------------------------------
-- --examine --scan scans all drives and build an mdadm.conf file DONE
-
-- check superblock checksum in examine DONE
-- report "chunk" or "rounding" depending on raid level DONE
-- report "linear" instead of "-1" for raid level DONE
-- decode ayout depending on raid level DONE
-- --verbose and --force flags. DONE
-
-- set md_minor, *_disks for Create  - DONE
-- for create raid5, how to choose between 
-   all working, but not insync
-   one missing, one spare, insync  DONE (--force)
-- and for raid1 - some failed drives...  (missing)
-
-- when RUN_ARRAY, make sure *_disks counts are right
-
-- get --detail to extract extra stuff from superblock,
-   like uuid  DONE
-- --detail --brief to give a config file line DONE
-- parse config file. DONE
-- test...
-
-- when --assemble --scan, if an underlying device is an md device, 
-  then try to assemble that device first.
-
-
-- mdadm -S /dev/md0 /dev/md1 gives internal error FIXED
-
-- mdadm --detail --scan print summary of what it can find? DONE
-
-
----------
-Assemble doesn't add spares. - DONE
-Create to allow "missing" name for devices.
-Create to accept "--force" for do exactly what is requested
-- get Assemble to upgrade devices if force flag.
-ARRAY lines in config file to have super_minor=n
-ARRAY lines in config file to have device=pattern, and only accept
-   those devices
-   If UUID given, insist on that
-   If not, but super_minor given, require all found with that minor
-    to have same uuid
-   If only device given, all valid supers on those devices must have 
-    same uuid
-allow /dev/mdX as first argument before any options
-Possible --dry-run option for create and assemble--force
-
-Assemble to check that all devices mentioned in superblock
-  are present.
-
-New mode: --Monitor (or --Follow)
-  Periodically check status of all arrays (listed in config file).
-  Log every event and apparent cause - or differences
-  Email and alert - or run a program - for important events
-  Move spares around if necessary.
-
-  An Array line can have a spare-group= field that indicates that
-   the array shares spares with other arrays with the same
-   spare-group name.
-   If an array has a failed and no spares, then check all other
-     arrays in the spare group.  If one has no failures and a spare,
-     then consider that spare.
-    Choose the smallest considered spare that is large enough.
-    If there is one, then hot-remove it from it's home, and
-    hot-add it to the array in question.
-
-  --mail-to address  
-  --alert-handler program
-  
-  Will also extract information from /proc/mdstat if present,
-  and consider 20% marks in rebuild as events.
-
-  Events are:
-     drive fails  - causes mail to be sent
-     rebuild started
-     spare activated
-     spare removed
-     spare added
