@@ -231,12 +231,15 @@ protected override void Execute(GVFSEnlistment enlistment)
231231 cacheServerFromConfig ,
232232 out objectRequestor ,
233233 out resolvedCacheServer ) ;
234- this . PrefetchBlobs ( tracer , enlistment , headCommitId , filesList , foldersList , lastPrefetchArgs , objectRequestor , resolvedCacheServer ) ;
234+ this . PrefetchBlobs ( tracer , enlistment , headCommitId , filesList , foldersList , prefetchCache , prefetchCacheSize , objectRequestor , resolvedCacheServer ) ;
235235 }
236236 else
237237 {
238- // Mount handled download — now hydrate locally
238+ // Mount handled download — hydrate locally, then update noop
239+ // cache. Cache update is after hydration so a hydration failure
240+ // doesn't suppress the retry on the next run.
239241 this . HydrateMatchingFiles ( tracer , enlistment , filesList , foldersList ) ;
242+ BlobPrefetcher . UpdateNoopCache ( prefetchCache , prefetchCacheSize , headCommitId , filesList , foldersList , this . HydrateFiles ) ;
240243 }
241244 }
242245 else if ( ! this . TryPrefetchBlobsViaMountProcess ( tracer , enlistment , filesList , foldersList , headCommitId ) )
@@ -251,6 +254,11 @@ protected override void Execute(GVFSEnlistment enlistment)
251254 out resolvedCacheServer ) ;
252255 this . PrefetchBlobs ( tracer , enlistment , headCommitId , filesList , foldersList , prefetchCache , prefetchCacheSize , objectRequestor , resolvedCacheServer ) ;
253256 }
257+ else
258+ {
259+ // Mount handled download — update noop cache so repeat runs are skipped
260+ BlobPrefetcher . UpdateNoopCache ( prefetchCache , prefetchCacheSize , headCommitId , filesList , foldersList , hydrate : false ) ;
261+ }
254262 }
255263 }
256264 catch ( VerbAbortedException )
0 commit comments