X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lnet%2Fklnds%2Fsocklnd%2Fsocklnd.c;h=d0e073ca5ae4895577fc752e7224643d17fa8959;hp=99f97816ef41349d75f1fba51ef7fb9349935e2e;hb=61aa09e1ed8463ccda1f5d83d2c5aff8080a6116;hpb=1612925723908f4eb4bc2cefe677b7825027fe7f diff --git a/lnet/klnds/socklnd/socklnd.c b/lnet/klnds/socklnd/socklnd.c index 99f9781..d0e073c 100644 --- a/lnet/klnds/socklnd/socklnd.c +++ b/lnet/klnds/socklnd/socklnd.c @@ -618,7 +618,7 @@ ksocknal_del_peer(struct lnet_ni *ni, struct lnet_process_id id, __u32 ip) write_unlock_bh(&ksocknal_data.ksnd_global_lock); - ksocknal_txlist_done(ni, &zombies, 1); + ksocknal_txlist_done(ni, &zombies, -ENETDOWN); return rc; } @@ -1030,6 +1030,7 @@ ksocknal_create_conn(struct lnet_ni *ni, ksock_route_t *route, ksock_tx_t *tx; ksock_tx_t *txtmp; int rc; + int rc2; int active; char *warn = NULL; @@ -1384,7 +1385,13 @@ failed_2: write_unlock_bh(global_lock); } - ksocknal_txlist_done(ni, &zombies, 1); + /* + * If we get here without an error code, just use -EALREADY. + * Depending on how we got here, the error may be positive + * or negative. Normalize the value for ksocknal_txlist_done(). + */ + rc2 = (rc == 0 ? -EALREADY : (rc > 0 ? -rc : rc)); + ksocknal_txlist_done(ni, &zombies, rc2); ksocknal_peer_decref(peer_ni); failed_1: