]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-windows-cm_syncop-buflocked-20060622
authorJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 23 Jun 2006 04:34:40 +0000 (04:34 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 23 Jun 2006 04:34:40 +0000 (04:34 +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 cb28ef781273f783edc0240e150d1c48003fd227..309f972e28a6f84c027665ea847ba5821b93bb05 100644 (file)
@@ -940,13 +940,13 @@ long cm_SyncOp(cm_scache_t *scp, cm_buf_t *bufp, cm_user_t *userp, cm_req_t *req
                 /* we don't know the required access rights */
                 if (bufLocked) lock_ReleaseMutex(&bufp->mx);
                 code = cm_GetAccessRights(scp, userp, reqp);
-                if (code) 
-                    return code;
                 if (bufLocked) {
                     lock_ReleaseMutex(&scp->mx);
                     lock_ObtainMutex(&bufp->mx);
                     lock_ObtainMutex(&scp->mx);
                 }
+                if (code) 
+                    return code;
                 continue;
             }
         }