X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fmd%2Fdm-target.c;h=aecd9e0c2616b7ad0ec1881be502e501ddd9c731;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=7a9122d704570c2950270bcac4b93a2b2f936fe1;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/drivers/md/dm-target.c b/drivers/md/dm-target.c index 7a9122d70..aecd9e0c2 100644 --- a/drivers/md/dm-target.c +++ b/drivers/md/dm-target.c @@ -7,6 +7,7 @@ #include "dm.h" #include +#include #include #include #include @@ -119,10 +120,9 @@ int dm_register_target(struct target_type *t) return -ENOMEM; down_write(&_lock); - if (__find_target_type(t->name)) { - kfree(ti); + if (__find_target_type(t->name)) rv = -EEXIST; - } else + else list_add(&ti->list, &_targets); up_write(&_lock); @@ -181,7 +181,7 @@ static struct target_type error_target = { .map = io_err_map, }; -int dm_target_init(void) +int __init dm_target_init(void) { return dm_register_target(&error_target); }