summaryrefslogtreecommitdiff
path: root/drivers/md/dm-target.c
diff options
context:
space:
mode:
authorYangtao Li <frank.li@vivo.com>2023-03-18 16:16:33 +0300
committerMike Snitzer <snitzer@kernel.org>2023-04-11 19:01:01 +0300
commitb362c733ed7bf312ed729847bc26ba89febc556e (patch)
tree3aca88e86af3babc68dbdc97eaf13fad0e569efe /drivers/md/dm-target.c
parent6b79a428c02769f2a11f8ae76bf866226d134887 (diff)
downloadlinux-b362c733ed7bf312ed729847bc26ba89febc556e.tar.xz
dm: push error reporting down to dm_register_target()
Simplifies each DM target's init method by making dm_register_target() responsible for its error reporting (on behalf of targets). Signed-off-by: Yangtao Li <frank.li@vivo.com> Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Diffstat (limited to 'drivers/md/dm-target.c')
-rw-r--r--drivers/md/dm-target.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/md/dm-target.c b/drivers/md/dm-target.c
index 97a75f3eed93..27e2992ff249 100644
--- a/drivers/md/dm-target.c
+++ b/drivers/md/dm-target.c
@@ -85,12 +85,15 @@ int dm_register_target(struct target_type *tt)
int rv = 0;
down_write(&_lock);
- if (__find_target_type(tt->name))
+ if (__find_target_type(tt->name)) {
+ DMERR("%s: '%s' target already registered",
+ __func__, tt->name);
rv = -EEXIST;
- else
+ } else {
list_add(&tt->list, &_targets);
-
+ }
up_write(&_lock);
+
return rv;
}
EXPORT_SYMBOL(dm_register_target);