diff --git a/src/afs/afs_fetchstore.c b/src/afs/afs_fetchstore.c index 16c05502bd..9fb766fb43 100644 --- a/src/afs/afs_fetchstore.c +++ b/src/afs/afs_fetchstore.c @@ -543,6 +543,7 @@ afs_CacheStoreDCaches(struct vcache *avc, struct dcache **dclist, if (!code) { code = (*ops->close)(rock, OutStatus, doProcessFS); + /* if this succeeds, dv has been bumped. */ if (*doProcessFS) { hadd32(*anewDV, 1); } @@ -550,6 +551,11 @@ afs_CacheStoreDCaches(struct vcache *avc, struct dcache **dclist, } if (ops) code = (*ops->destroy)(&rock, code); + + /* if we errored, can't trust this. */ + if (code) + *doProcessFS = 0; + return code; }