kcopyd_init() has been changed from an __init routine to being called kcopyd_client_create(). But the jobs_init() call accidentally remained an __init call. This leads to problems. This just removes the __init from the jobs_init() declaration. diff -ur linux-2.6.7-rc3-udm1-original/drivers/md/kcopyd.c linux-2.6.7-rc3-udm1-patch1/drivers/md/kcopyd.c --- linux-2.6.7-rc3-udm1-original/drivers/md/kcopyd.c 2004-06-16 10:15:37.000000000 -0700 +++ linux-2.6.7-rc3-udm1-patch1/drivers/md/kcopyd.c 2004-06-17 13:08:59.000000000 -0700 @@ -220,7 +220,7 @@ static LIST_HEAD(_io_jobs); static LIST_HEAD(_pages_jobs); -static int __init jobs_init(void) +static int jobs_init(void) { _job_cache = kmem_cache_create("kcopyd-jobs", sizeof(struct kcopyd_job),