i=isaac
i=maxim
Fix for conn race when create_conn creates conn and add it to peer's list,
releases global lock, gets a comm error, acquires the lock again and attempts
to close the conn while it could be closed by some other thread.
Details :
Severity : normal
Details :
Severity : normal
+Bugzilla : 20897
+Description: ksocknal_close_conn_locked connection race
+Details : A race was possible when ksocknal_create_conn calls
+ ksocknal_close_conn_locked for already closed conn.
+
+Severity : normal
Bugzilla : 18102
Description: router_proc.c is rewritten to use sysctl-interface for parameters
residing in /proc/sys/lnet
Bugzilla : 18102
Description: router_proc.c is rewritten to use sysctl-interface for parameters
residing in /proc/sys/lnet
if (rc != 0) {
cfs_write_lock_bh(global_lock);
if (rc != 0) {
cfs_write_lock_bh(global_lock);
- ksocknal_close_conn_locked(conn, rc);
+ if (!conn->ksnc_closing) {
+ /* could be closed by another thread */
+ ksocknal_close_conn_locked(conn, rc);
+ }
cfs_write_unlock_bh(global_lock);
} else if (ksocknal_connsock_addref(conn) == 0) {
/* Allow I/O to proceed. */
cfs_write_unlock_bh(global_lock);
} else if (ksocknal_connsock_addref(conn) == 0) {
/* Allow I/O to proceed. */