]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Windows: cm_ConnByServer add conn to list after init
authorJeffrey Altman <jaltman@your-file-system.com>
Thu, 5 Jul 2012 18:33:50 +0000 (14:33 -0400)
committerJeffrey Altman <jaltman@your-file-system.com>
Sat, 8 Dec 2012 16:16:41 +0000 (08:16 -0800)
Do not add a newly created cm_conn_t to the cm_server_t connsp
list until after the object is fully initialized.

Reviewed-on: http://gerrit.openafs.org/7717
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit c3ce54e6b7be8c2996a0fda2d7ad9780fca2f0ef)

Change-Id: I0209a82765b31ccc8a93316438ef12864dbc5339
Reviewed-on: http://gerrit.openafs.org/8639
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
src/WINNT/afsd/cm_conn.c

index 86872b0c517084954bda160f0c37473f1a0ae80d..0d4886260f616479f5cf84ad5246b1d931ec87fe 100644 (file)
@@ -1503,17 +1503,15 @@ long cm_ConnByServer(cm_server_t *serverp, cm_user_t *userp, afs_uint32 replicat
         cm_GetServer(serverp);
         tcp = malloc(sizeof(*tcp));
         memset(tcp, 0, sizeof(*tcp));
-        tcp->nextp = serverp->connsp;
-        serverp->connsp = tcp;
         cm_HoldUser(userp);
         tcp->userp = userp;
         lock_InitializeMutex(&tcp->mx, "cm_conn_t mutex", LOCK_HIERARCHY_CONN);
-        lock_ObtainMutex(&tcp->mx);
         tcp->serverp = serverp;
         tcp->cryptlevel = rxkad_clear;
         cm_NewRXConnection(tcp, ucellp, serverp, replicated);
         tcp->refCount = 1;
-        lock_ReleaseMutex(&tcp->mx);
+        tcp->nextp = serverp->connsp;
+        serverp->connsp = tcp;
         lock_ReleaseWrite(&cm_connLock);
     } else {
         lock_ReleaseRead(&cm_connLock);