dm_unregister_path_selector may only return error if there's a bug in the
code - so we make it return void and print a warning if the user abuses
this function to unregister a target that was not registered.

Signed-off-by: Mikulas Patocka <mpato...@redhat.com>

---
 drivers/md/dm-path-selector.c              |    8 +++-----
 drivers/md/dm-path-selector.h              |    2 +-
 drivers/md/dm-ps-historical-service-time.c |    5 +----
 drivers/md/dm-ps-io-affinity.c             |    5 +----
 drivers/md/dm-ps-queue-length.c            |    5 +----
 drivers/md/dm-ps-round-robin.c             |    5 +----
 drivers/md/dm-ps-service-time.c            |    5 +----
 7 files changed, 9 insertions(+), 26 deletions(-)

Index: linux-dm/drivers/md/dm-path-selector.c
===================================================================
--- linux-dm.orig/drivers/md/dm-path-selector.c
+++ linux-dm/drivers/md/dm-path-selector.c
@@ -117,16 +117,16 @@ int dm_register_path_selector(struct pat
 }
 EXPORT_SYMBOL_GPL(dm_register_path_selector);
 
-int dm_unregister_path_selector(struct path_selector_type *pst)
+void dm_unregister_path_selector(struct path_selector_type *pst)
 {
        struct ps_internal *psi;
 
        down_write(&_ps_lock);
 
        psi = __find_path_selector_type(pst->name);
-       if (!psi) {
+       if (WARN_ON(!psi)) {
                up_write(&_ps_lock);
-               return -EINVAL;
+               return;
        }
 
        list_del(&psi->list);
@@ -134,7 +134,5 @@ int dm_unregister_path_selector(struct p
        up_write(&_ps_lock);
 
        kfree(psi);
-
-       return 0;
 }
 EXPORT_SYMBOL_GPL(dm_unregister_path_selector);
Index: linux-dm/drivers/md/dm-path-selector.h
===================================================================
--- linux-dm.orig/drivers/md/dm-path-selector.h
+++ linux-dm/drivers/md/dm-path-selector.h
@@ -96,7 +96,7 @@ struct path_selector_type {
 int dm_register_path_selector(struct path_selector_type *type);
 
 /* Unregister a path selector */
-int dm_unregister_path_selector(struct path_selector_type *type);
+void dm_unregister_path_selector(struct path_selector_type *type);
 
 /* Returns a registered path selector type */
 struct path_selector_type *dm_get_path_selector(const char *name);
Index: linux-dm/drivers/md/dm-ps-historical-service-time.c
===================================================================
--- linux-dm.orig/drivers/md/dm-ps-historical-service-time.c
+++ linux-dm/drivers/md/dm-ps-historical-service-time.c
@@ -551,10 +551,7 @@ static int __init dm_hst_init(void)
 
 static void __exit dm_hst_exit(void)
 {
-       int r = dm_unregister_path_selector(&hst_ps);
-
-       if (r < 0)
-               DMERR("unregister failed %d", r);
+       dm_unregister_path_selector(&hst_ps);
 }
 
 module_init(dm_hst_init);
Index: linux-dm/drivers/md/dm-ps-io-affinity.c
===================================================================
--- linux-dm.orig/drivers/md/dm-ps-io-affinity.c
+++ linux-dm/drivers/md/dm-ps-io-affinity.c
@@ -260,10 +260,7 @@ static int __init dm_ioa_init(void)
 
 static void __exit dm_ioa_exit(void)
 {
-       int ret = dm_unregister_path_selector(&ioa_ps);
-
-       if (ret < 0)
-               DMERR("unregister failed %d", ret);
+       dm_unregister_path_selector(&ioa_ps);
 }
 
 module_init(dm_ioa_init);
Index: linux-dm/drivers/md/dm-ps-queue-length.c
===================================================================
--- linux-dm.orig/drivers/md/dm-ps-queue-length.c
+++ linux-dm/drivers/md/dm-ps-queue-length.c
@@ -270,10 +270,7 @@ static int __init dm_ql_init(void)
 
 static void __exit dm_ql_exit(void)
 {
-       int r = dm_unregister_path_selector(&ql_ps);
-
-       if (r < 0)
-               DMERR("unregister failed %d", r);
+       dm_unregister_path_selector(&ql_ps);
 }
 
 module_init(dm_ql_init);
Index: linux-dm/drivers/md/dm-ps-round-robin.c
===================================================================
--- linux-dm.orig/drivers/md/dm-ps-round-robin.c
+++ linux-dm/drivers/md/dm-ps-round-robin.c
@@ -230,10 +230,7 @@ static int __init dm_rr_init(void)
 
 static void __exit dm_rr_exit(void)
 {
-       int r = dm_unregister_path_selector(&rr_ps);
-
-       if (r < 0)
-               DMERR("unregister failed %d", r);
+       dm_unregister_path_selector(&rr_ps);
 }
 
 module_init(dm_rr_init);
Index: linux-dm/drivers/md/dm-ps-service-time.c
===================================================================
--- linux-dm.orig/drivers/md/dm-ps-service-time.c
+++ linux-dm/drivers/md/dm-ps-service-time.c
@@ -351,10 +351,7 @@ static int __init dm_st_init(void)
 
 static void __exit dm_st_exit(void)
 {
-       int r = dm_unregister_path_selector(&st_ps);
-
-       if (r < 0)
-               DMERR("unregister failed %d", r);
+       dm_unregister_path_selector(&st_ps);
 }
 
 module_init(dm_st_init);


Reply via email to