From: Jeffrey Altman Date: Thu, 5 Jul 2012 15:03:35 +0000 (-0400) Subject: Windows: cm_HaveCallback optimize .readonly X-Git-Tag: upstream/1.6.2_pre2^2~38 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=d5001acddda6864e7c3409f9286bc0bb907090ef;p=packages%2Fo%2Fopenafs.git Windows: cm_HaveCallback optimize .readonly If the cm_scache_t has a registered callback, there is no reason to obtain a volume reference for a .readonly. Just use the callback. Reviewed-on: http://gerrit.openafs.org/7716 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman (cherry picked from commit f73aebbe8772e62bf8930d70e9edab2f82ff8984) Change-Id: Ibacb272fade3aa24beb0b7c9a966b9e769385669 Reviewed-on: http://gerrit.openafs.org/8638 Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- diff --git a/src/WINNT/afsd/cm_callback.c b/src/WINNT/afsd/cm_callback.c index ef9644828..38dbab263 100644 --- a/src/WINNT/afsd/cm_callback.c +++ b/src/WINNT/afsd/cm_callback.c @@ -1555,6 +1555,9 @@ int cm_HaveCallback(cm_scache_t *scp) return (cm_data.fakeDirVersion == scp->dataVersion); } #endif + if (scp->cbServerp != NULL) + return 1; + if (scp->flags & CM_SCACHEFLAG_PURERO) { cm_volume_t *volp = cm_GetVolumeByFID(&scp->fid); if (volp) { @@ -1577,10 +1580,7 @@ int cm_HaveCallback(cm_scache_t *scp) return haveCB; } } - if (scp->cbServerp != NULL) - return 1; - else - return 0; + return 0; } /* need to detect a broken callback that races with our obtaining a callback.