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:
  * bnx2fc fcoe

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

diff --git a/drivers/scsi/fcoe/fcoe_transport.c 
b/drivers/scsi/fcoe/fcoe_transport.c
index 2f478426f16e..d0f9ff4893e3 100644
--- a/drivers/scsi/fcoe/fcoe_transport.c
+++ b/drivers/scsi/fcoe/fcoe_transport.c
@@ -533,7 +533,7 @@ int fcoe_transport_attach(struct fcoe_transport *ft)
        if (ft->attached) {
                LIBFCOE_TRANSPORT_DBG("transport %s already attached\n",
                                       ft->name);
-               rc = -EEXIST;
+               rc = -EBUSY;
                goto out_attach;
        }
 

-- 
2.52.0


Reply via email to