From: Daniel Gomez <[email protected]>

The -EEXIST error code is reserved by the module loading infrastructure
to indicate that a module is already loaded. When a module's init
function returns -EEXIST, userspace tools like kmod interpret this as
"module already loaded" and treat the operation as successful, returning
0 to the user even though the module initialization actually failed.

This follows the precedent set by commit 54416fd76770 ("netfilter:
conntrack: helper: Replace -EEXIST by -EBUSY") which fixed the same
issue in nf_conntrack_helper_register()

Affected modules:
  * target_core_file target_core_iblock target_core_pscsi
  * target_core_user

Signed-off-by: Daniel Gomez <[email protected]>
---
 drivers/target/target_core_hba.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/target/target_core_hba.c b/drivers/target/target_core_hba.c
index d508b343ba7b..dcc11671d919 100644
--- a/drivers/target/target_core_hba.c
+++ b/drivers/target/target_core_hba.c
@@ -50,7 +50,7 @@ int transport_backend_register(const struct 
target_backend_ops *ops)
                        pr_err("backend %s already registered.\n", ops->name);
                        mutex_unlock(&backend_mutex);
                        kfree(tb);
-                       return -EEXIST;
+                       return -EBUSY;
                }
        }
        target_setup_backend_cits(tb);

-- 
2.52.0


Reply via email to