dm: push error reporting down to dm_register_target()
authorYangtao Li <frank.li@vivo.com>
Sat, 18 Mar 2023 13:16:33 +0000 (21:16 +0800)
committerMike Snitzer <snitzer@kernel.org>
Tue, 11 Apr 2023 16:01:01 +0000 (12:01 -0400)
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>
18 files changed:
drivers/md/dm-cache-target.c
drivers/md/dm-clone-target.c
drivers/md/dm-crypt.c
drivers/md/dm-delay.c
drivers/md/dm-dust.c
drivers/md/dm-ebs-target.c
drivers/md/dm-era-target.c
drivers/md/dm-flakey.c
drivers/md/dm-integrity.c
drivers/md/dm-log-writes.c
drivers/md/dm-mpath.c
drivers/md/dm-raid1.c
drivers/md/dm-snap.c
drivers/md/dm-switch.c
drivers/md/dm-target.c
drivers/md/dm-verity-target.c
drivers/md/dm-writecache.c
drivers/md/dm-zero.c

index dbbcfa580078b2c6731e61538de492775c77249d..872896218550c99d80ec9336565431a5fd5e403b 100644 (file)
@@ -3459,7 +3459,6 @@ static int __init dm_cache_init(void)
 
        r = dm_register_target(&cache_target);
        if (r) {
-               DMERR("cache target registration failed: %d", r);
                kmem_cache_destroy(migration_cache);
                return r;
        }
index fc30ebd67622c7d97a6f7a9fcfb91d2bc70fa6a0..f467cdb5a022377172e33e12b834777e909977dd 100644 (file)
@@ -2204,7 +2204,6 @@ static int __init dm_clone_init(void)
 
        r = dm_register_target(&clone_target);
        if (r < 0) {
-               DMERR("Failed to register clone target");
                kmem_cache_destroy(_hydration_cache);
                return r;
        }
index 3ba53dc3cc3f627218941a61a9bdd6d948c87f43..52615a258e13c587534d89c1aac9394a2e16b163 100644 (file)
@@ -3662,13 +3662,7 @@ static struct target_type crypt_target = {
 
 static int __init dm_crypt_init(void)
 {
-       int r;
-
-       r = dm_register_target(&crypt_target);
-       if (r < 0)
-               DMERR("register failed %d", r);
-
-       return r;
+       return dm_register_target(&crypt_target);
 }
 
 static void __exit dm_crypt_exit(void)
index a425046f88c7caf904d2c5547013eb390d553757..00d18b2070a5b94d7972d6fe94325c5ce3cf0ab1 100644 (file)
@@ -370,18 +370,7 @@ static struct target_type delay_target = {
 
 static int __init dm_delay_init(void)
 {
-       int r;
-
-       r = dm_register_target(&delay_target);
-       if (r < 0) {
-               DMERR("register failed %d", r);
-               goto bad_register;
-       }
-
-       return 0;
-
-bad_register:
-       return r;
+       return dm_register_target(&delay_target);
 }
 
 static void __exit dm_delay_exit(void)
index 7ae9936752de8e232b3d2cf8a4ead9ef327dc7fd..9bf3cdf548de2063f97fff7c9cec93a52a67cc76 100644 (file)
@@ -573,12 +573,7 @@ static struct target_type dust_target = {
 
 static int __init dm_dust_init(void)
 {
-       int r = dm_register_target(&dust_target);
-
-       if (r < 0)
-               DMERR("dm_register_target failed %d", r);
-
-       return r;
+       return dm_register_target(&dust_target);
 }
 
 static void __exit dm_dust_exit(void)
index b1068a68bc468fccd406fcceea65198777b4f2e1..38da4de3ecbfc429a04168a71049a9dcea43db47 100644 (file)
@@ -455,12 +455,7 @@ static struct target_type ebs_target = {
 
 static int __init dm_ebs_init(void)
 {
-       int r = dm_register_target(&ebs_target);
-
-       if (r < 0)
-               DMERR("register failed %d", r);
-
-       return r;
+       return dm_register_target(&ebs_target);
 }
 
 static void dm_ebs_exit(void)
index c2e7780cdd2ddece6b476743a2810c1a868afbe8..554d234fca185f427f173f5caf5812e18cbc88f8 100644 (file)
@@ -1756,15 +1756,7 @@ static struct target_type era_target = {
 
 static int __init dm_era_init(void)
 {
-       int r;
-
-       r = dm_register_target(&era_target);
-       if (r) {
-               DMERR("era target registration failed: %d", r);
-               return r;
-       }
-
-       return 0;
+       return dm_register_target(&era_target);
 }
 
 static void __exit dm_era_exit(void)
index 5b7556d2a9d9f19ea6cb951a2236aa2929e83814..14179355e6a12e88d94957bf68e6b09c03b4ecdd 100644 (file)
@@ -509,12 +509,7 @@ static struct target_type flakey_target = {
 
 static int __init dm_flakey_init(void)
 {
-       int r = dm_register_target(&flakey_target);
-
-       if (r < 0)
-               DMERR("register failed %d", r);
-
-       return r;
+       return dm_register_target(&flakey_target);
 }
 
 static void __exit dm_flakey_exit(void)
index 54830b07b829af7f903edb2ec020094781f089cc..ed612bf38b83004ed01be72e290b23b6f0826b78 100644 (file)
@@ -4704,7 +4704,6 @@ static int __init dm_integrity_init(void)
 
        r = dm_register_target(&integrity_target);
        if (r < 0) {
-               DMERR("register failed %d", r);
                kmem_cache_destroy(journal_io_cache);
                return r;
        }
index cbd0f81f4a355768b913a32bd325147479fd8ff3..0ce9b01d1393bed142b94c623dc1ee7eeb19dffe 100644 (file)
@@ -940,12 +940,7 @@ static struct target_type log_writes_target = {
 
 static int __init dm_log_writes_init(void)
 {
-       int r = dm_register_target(&log_writes_target);
-
-       if (r < 0)
-               DMERR("register failed %d", r);
-
-       return r;
+       return dm_register_target(&log_writes_target);
 }
 
 static void __exit dm_log_writes_exit(void)
index 61ab1a8d2c9c449896a730d4ac9f31aa3ed579c4..bea3cda9938e9744f49d63a6bcf95cdcb8624d40 100644 (file)
@@ -2235,11 +2235,8 @@ static int __init dm_multipath_init(void)
        }
 
        r = dm_register_target(&multipath_target);
-       if (r < 0) {
-               DMERR("request-based register failed %d", r);
-               r = -EINVAL;
+       if (r < 0)
                goto bad_register_target;
-       }
 
        return 0;
 
index bc417a5e5b892f5c70389a08db50498f96a2efa2..3e947655746c5125c75f549e9eff9d78a22f8153 100644 (file)
@@ -1498,23 +1498,19 @@ static struct target_type mirror_target = {
 
 static int __init dm_mirror_init(void)
 {
-       int r = -ENOMEM;
+       int r;
 
        dm_raid1_wq = alloc_workqueue("dm_raid1_wq", 0, 0);
        if (!dm_raid1_wq)
-               goto bad_target;
+               return -ENOMEM;
 
        r = dm_register_target(&mirror_target);
        if (r < 0) {
                destroy_workqueue(dm_raid1_wq);
-               goto bad_target;
+               return r;
        }
 
        return 0;
-
-bad_target:
-       DMERR("Failed to register mirror target");
-       return r;
 }
 
 static void __exit dm_mirror_exit(void)
index f766c21408f1851f020ca6f055cdc2935d2aa2b3..9c49f53760d06699e4f5bf1318a408254e914d4a 100644 (file)
@@ -2815,22 +2815,16 @@ static int __init dm_snapshot_init(void)
        }
 
        r = dm_register_target(&snapshot_target);
-       if (r < 0) {
-               DMERR("snapshot target register failed %d", r);
+       if (r < 0)
                goto bad_register_snapshot_target;
-       }
 
        r = dm_register_target(&origin_target);
-       if (r < 0) {
-               DMERR("Origin target register failed %d", r);
+       if (r < 0)
                goto bad_register_origin_target;
-       }
 
        r = dm_register_target(&merge_target);
-       if (r < 0) {
-               DMERR("Merge target register failed %d", r);
+       if (r < 0)
                goto bad_register_merge_target;
-       }
 
        return 0;
 
index ee2432927e908ee49feeafe0fcc640d3e369e859..5a5976b0cfb8edddaf2a5832cd035cc8ad9e3902 100644 (file)
@@ -568,13 +568,7 @@ static struct target_type switch_target = {
 
 static int __init dm_switch_init(void)
 {
-       int r;
-
-       r = dm_register_target(&switch_target);
-       if (r < 0)
-               DMERR("dm_register_target() failed %d", r);
-
-       return r;
+       return dm_register_target(&switch_target);
 }
 
 static void __exit dm_switch_exit(void)
index 97a75f3eed93063a9f89e5298e8e8cfeb2b50038..27e2992ff249271edfb30629936c28ff541a81a0 100644 (file)
@@ -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);
index b2f0c3c0abdbc11ee783174cf15cf86647844e9b..260f04d129829919803d0149ece6a562bcf1a6b5 100644 (file)
@@ -1517,13 +1517,7 @@ static struct target_type verity_target = {
 
 static int __init dm_verity_init(void)
 {
-       int r;
-
-       r = dm_register_target(&verity_target);
-       if (r < 0)
-               DMERR("register failed %d", r);
-
-       return r;
+       return dm_register_target(&verity_target);
 }
 
 static void __exit dm_verity_exit(void)
index 3aa5874f0aefabb22121e94a928021dca57ef2dc..81b60b75a9fa98f69142941fa62edfffae0ba23c 100644 (file)
@@ -2776,15 +2776,7 @@ static struct target_type writecache_target = {
 
 static int __init dm_writecache_init(void)
 {
-       int r;
-
-       r = dm_register_target(&writecache_target);
-       if (r < 0) {
-               DMERR("register failed %d", r);
-               return r;
-       }
-
-       return 0;
+       return dm_register_target(&writecache_target);
 }
 
 static void __exit dm_writecache_exit(void)
index 6215d8eb7e417e70754480465b4e5664a4a886f8..884ac726a74301b9d32dd5f91eea862061905fa0 100644 (file)
@@ -78,12 +78,7 @@ static struct target_type zero_target = {
 
 static int __init dm_zero_init(void)
 {
-       int r = dm_register_target(&zero_target);
-
-       if (r < 0)
-               DMERR("register failed %d", r);
-
-       return r;
+       return dm_register_target(&zero_target);
 }
 
 static void __exit dm_zero_exit(void)