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);