X-Git-Url: https://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2FWINNT%2Fafsd%2Fcm_vnodeops.c;h=2f4e56db15fdb84199a3c793e1329a1b4b9dbe3b;hp=afcc46fa63e6dcf0ba527494566b20371ad41363;hb=de6a01e51d8ea97e943cb4fa93d6bba2ecae9644;hpb=665a125335c4844d35fa6510a38083602ef7fdbc diff --git a/src/WINNT/afsd/cm_vnodeops.c b/src/WINNT/afsd/cm_vnodeops.c index afcc46f..2f4e56d 100644 --- a/src/WINNT/afsd/cm_vnodeops.c +++ b/src/WINNT/afsd/cm_vnodeops.c @@ -2204,6 +2204,10 @@ long cm_SetAttr(cm_scache_t *scp, cm_attr_t *attrp, cm_user_t *userp, lock_ObtainMutex(&scp->mx); /* otherwise, we have to make an RPC to get the status */ code = cm_SyncOp(scp, NULL, userp, reqp, 0, CM_SCACHESYNC_STORESTATUS); + if (code) { + lock_ReleaseMutex(&scp->mx); + return code; + } /* make the attr structure */ cm_StatusFromAttr(&afsInStatus, scp, attrp); @@ -2212,9 +2216,6 @@ long cm_SetAttr(cm_scache_t *scp, cm_attr_t *attrp, cm_user_t *userp, tfid.Vnode = scp->fid.vnode; tfid.Unique = scp->fid.unique; - lock_ReleaseMutex(&scp->mx); - if (code) - return code; /* now make the RPC */ osi_Log1(afsd_logp, "CALL StoreStatus scp 0x%p", scp);