Sorry, I made an error on that last patch to dm-target.c. I overlooked that it needed the init.h header file included also, and I had not compiled the change because it was "so trivial". Please use this patch instead. diff -ur linux-2.6.6-rc2-udm1-original/drivers/md/dm-target.c linux-2.6.6-rc2-udm1-patched/drivers/md/dm-target.c --- linux-2.6.6-rc2-udm1-original/drivers/md/dm-target.c 2004-04-27 17:59:53.000000000 -0700 +++ linux-2.6.6-rc2-udm1-patched/drivers/md/dm-target.c 2004-04-27 18:29:58.000000000 -0700 @@ -7,6 +7,7 @@ #include "dm.h" #include <linux/module.h> +#include <linux/init.h> #include <linux/kmod.h> #include <linux/bio.h> #include <linux/slab.h> @@ -181,12 +182,12 @@ .map = io_err_map, }; -int dm_target_init(void) +int __init dm_target_init(void) { return dm_register_target(&error_target); } -void dm_target_exit(void) +void __exit dm_target_exit(void) { if (dm_unregister_target(&error_target)) DMWARN("error target unregistration failed");