diff --git a/ChangeLog b/ChangeLog
index 73d92055dc..17534f4776 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,84 @@
+2009-11-02 Brian Behlendorf <behlendorf1@llnl.gov>
+
+	* : Tag zfs-0.4.6 - Use 'git log --no-merges' for full change log.
+
+	* Rebased to ZFS b121 from OpenSolaris.
+
+	* module/zfs/vdev_disk.c: Finally a feature complete implementation:
+	- Handle dynamic bio merge_bdev limitations when constructing the
+	bio set associated with a dio.  This previously prevented us from
+	layering cleanly on the md and dm virtual devices.
+	- Removed hard coded 512 byte sector size.
+	- Correctly determine the device size when using a partition.
+	- Hold and extra dio reference when submitting bio's using
+	bio_submit() to prevent a completion race.
+
+	* lib/libefi/*: Added fully function libefi library from Solaris.
+	This allows us to properly create and access GPT style partition
+	tables which are used when a whole device is added to a zpool.
+
+	* cmd/zpool/zpool_vdev.c: Fully integrated zpool with Linux package
+	libblkid.  This allows zpool to identify existing devices of
+	various types to prevent devices from accidentally being used.  When
+	given a whole device with a GPT partition table all partitions will
+	be checked for existing filesystems.  At the moment MBR style
+	partition tables cannot be check and the force option must be used.
+
+	* cmd/zpool/zpool_vdev.c: Solaris devid support has been removed in
+	favor of Linux's udev.  This means that a zpool device will always be
+	opened using the path provided at configuration time.  This may
+	initially seem limiting but it has certain advantages:
+	- When creating a zpool where the physical location of the device
+	is NOT import simply create the pool using the /dev/disk/by-id paths.
+	This will ensure that regardless of physical location the device
+	will be properly located.
+	- When creating a zpool where the physical location of the device
+	is important use the /dev/disk/by-path paths.  This will ensure that
+	devices are never accidentally detected and used in an incorrect
+	location which would compromise the redundancy of the system.
+	- Ever better you can create use your own udev rules file to setup
+	any mapping and naming convention you desire.  One example of a
+	custom rule is to map physical device locations using grid with
+	numbers are letter for coordinates.  Each letter might represent
+	a specific bus/channel and each number a specific device.  For large
+	configurations this provides an easy way to identify devices.
+
+	* module/zpios/zpios.c: Update to use kobject_set_name() for
+	increased portability.
+
+	* modules/*/*: Update module init/exit access points to use
+	spl_module_{init,exit}() macro API.  This ensures the cwd is
+	immediately set to '/' and may be leveraged latter for any
+	additional module setup/cleanup which is required.
+
+	* cmd/ztest/ztest.c: Check ftrucate() return code to prevent
+	warnings when --fortify-source options is used in rpm builds.
+
+	* config/Rules.am: Set DEBUG/NDEBUG globally when building user
+	space components.
+
+	* scripts/zconfig.sh: Initial hook for running additional sanity
+	tests are part of 'make check'.  Currently, there are only two
+	tests which do some basic configuration checking but they should
+	be extended as much as possible to prevent regressions.  Tests
+	should also all be written so they run entirely in-tree.
+
+	* scripts/zpios-sanity.sh: Initial hook for validating real IO
+	using all block devices and all raid configurations.  Supported
+	device types include scsi, ide, md, dm, ram, loop, and file. 
+	Supported raid types include raid0, raid10, raidz, and raidz2.
+
+	* scripts/zpool-config/*: Update dragon and x4550 configs to use
+	custom udev rules file with <A-Z><1-N> naming convention.  Add
+	configs for md, dm, and ram block devices to verify functionality.
+
+	* zfs-test.spec.in: Added zfs-test package which extends the existing
+	in-tree test infrastructure such that it can be run as part of an
+	installed package.  This simplifies the testing of tagged releases.
+
+	* zfs-modules.spec.in: Various spec file tweaks for the supported
+	distros: RHEL5, RHEL6, SLES10, SLES11, Chaos4, Fedora 11.
+
 2009-08-04 Brian Behlendorf <behlendorf1@llnl.gov>
 
 	* : Tag zfs-0.4.5 - Use 'git log --no-merges' for full change log.
@@ -117,7 +198,7 @@
 	The atomic support is not 100% fully implemented but it's a good
 	first step towards cleanly supporting the architecture.
 	- Added powerpc ISA type.
-	- Explictly use signed char for portability.  On x86/x86_64
+	- Explicitly use signed char for portability.  On x86/x86_64
 	systems the default char type is signed, on ppc/ppc64 systems
 	the default char type is unsigned.
 	- Core target arch support for conditional compilation of SUBDIRs.
diff --git a/META b/META
index a2b44b958e..4f3feaaf95 100644
--- a/META
+++ b/META
@@ -1,6 +1,6 @@
 Meta:         1
 Name:         zfs
 Branch:       1.0
-Version:      0.4.5
+Version:      0.4.6
 Release:      1
 Release-Tags: relext
diff --git a/TODO b/TODO
index b05da0e285..364afd81f0 100644
--- a/TODO
+++ b/TODO
@@ -1,19 +1,51 @@
-SUMMARY OF MAJOR KNOWN PROBLEMS IN v0.4.5 (Development Release)
+SUMMARY OF MAJOR KNOWN PROBLEMS IN v0.4.6 (Development Release)
 
-- Implement something similar to the Solaris devid support to ensure
-  ZFS properly locates your disks even when moved.  The current port
-  is dependent on using something like udev to ensure this can never
-  happen but this is not a viable long term solution.
+* Fault Management (FM) and sysevent support / analog.
+  bugzilla 14866, 15645
 
-- Implement something like Solaris's sysevent support to detect when
-  drives appear or are removed.  There is no easy analog to my knowledge
-  for linux and we will need to come up with something.
+This is probably the biggest remaining chunk of work.  Linux has no
+direct equivalent of the Solaris Fault Management Architecture (FMA)
+and we need one.  All fault information is currently ignored and no
+disk errors are even logged.  We need to settle on a design for this
+but minimally it needs to log the events to syslog.
 
-- Get the ZVOL working as a vehicle for further stress testing under
-  Linux, and to provide one useful user space interface for access to
-  the DMU.
+* Implement the ZVOL.
+  bugzilla xxxxx
 
-- Get the ZPL working minimal support will be needed for lustre.
+This should be pretty staight forward now that the DMU is fully
+implemented and solid.  It just needs to be done.
 
-- Integrate the FUSE port in to this code base, or rebase it as its
-  own zfs-fuse package which is built against the zfs-devel package.
+* Implement the ZPL.
+  bugzilla xxxxx
+
+Getting basic ZPL support should be pretty straight forward.  Moving
+beyond that to fully integrate with the VFS for things like mmap and
+file locking will be trickier.  
+
+* Integrate the ZFS-FUSE port in to this code base.
+  bugzilla xxxxx
+
+Merging the zfs-fuse code base in with this project would be nice from a
+code maintence standpoint.  This code base is quite a bit newer than
+zfs-fuse and it already provides a libzpool library for zfs-fuse to link
+against.  This should be a pretty straight forward addition.
+
+* Emulate kthreads with pthreads in userspace.
+  bugzilla xxxxx
+
+There is a patch available for this but each time I've integrated it
+I've observed SIGSEGVs in ztest.  Once this patch is in place ztest
+can be used to use the kthread API which brings us one step closer
+to being able to run it in the kernel as an additional sanity check.
+
+* DMU Performance
+  bugzilla 13566
+
+While performance is currently not bad it is not where it needs to be
+for production use.  The latest test results which can be found in the
+docs directly show that on hardware which is capable of 8GB/s we only
+see a few GB/s when running through the DMU.  To address this we need
+to finish getting the code working with the kernel lock profiler and
+look for some hot locks.  Additionally, it would be interesting to run
+the same tests on Solaris (once we have a ZVOL/ZPL) and compare the
+performance.  It's not at all clear to me Solaris currently does better.