]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-windows-cm_syncop-buflocked-20060622
authorJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 23 Jun 2006 04:37:57 +0000 (04:37 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 23 Jun 2006 04:37:57 +0000 (04:37 +0000)
If cm_SyncOp is called with the buffer locked, it must be returned
locked even on error.

(cherry picked from commit ae9a07a8e0a5d0e83e138ef9bbd71b3e7e0072ea)

src/WINNT/afsd/cm_scache.c

index 4a2735e0ab777f8ab0e7c7c4212b710db18cd1a9..c43cfca65b5140949450f9c847c1fb267c7fb65e 100644 (file)
@@ -940,13 +940,13 @@ long cm_SyncOp(cm_scache_t *scp, cm_buf_t *bufp, cm_user_t *up, cm_req_t *reqp,
                 /* we don't know the required access rights */
                 if (bufLocked) lock_ReleaseMutex(&bufp->mx);
                 code = cm_GetAccessRights(scp, up, reqp);
-                if (code) 
-                    return code;
                 if (bufLocked) {
                     lock_ReleaseMutex(&scp->mx);
                     lock_ObtainMutex(&bufp->mx);
                     lock_ObtainMutex(&scp->mx);
                 }
+                if (code) 
+                    return code;
                 continue;
             }
         }