From: Chaskiel M Grundman Date: Fri, 17 Feb 2006 21:43:42 +0000 (+0000) Subject: flushvolume-vhashq-consistency-20060217 X-Git-Tag: openafs-devel-1_5_0~5 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=c320fae82541d3026c9d2a89ffce60fd17ad5ca5;p=packages%2Fo%2Fopenafs.git flushvolume-vhashq-consistency-20060217 avoid having vflushed vnodes in play --- diff --git a/src/afs/afs_pioctl.c b/src/afs/afs_pioctl.c index 7aa595408..61d663fe9 100644 --- a/src/afs/afs_pioctl.c +++ b/src/afs/afs_pioctl.c @@ -2567,7 +2567,6 @@ DECL_PIOCTL(PFlushVolumeData) ObtainReadLock(&afs_xvcache); i = VCHashV(&avc->fid); for (tq = afs_vhashTV[i].prev; tq != &afs_vhashTV[i]; tq = uq) { - uq = QPrev(tq); tvc = QTOVH(tq); if (tvc->fid.Fid.Volume == volume && tvc->fid.Cell == cell) { if (tvc->states & CVInit) { @@ -2613,15 +2612,14 @@ DECL_PIOCTL(PFlushVolumeData) afs_BozonUnlock(&tvc->pvnLock, tvc); #endif #ifdef AFS_DARWIN80_ENV - /* our tvc ptr is still good until now */ - vnode_put(AFSTOV(tvc)); - AFS_FAST_RELE(tvc); - ObtainReadLock(&afs_xvcache); -#else + vnode_put(AFSTOV(tvc)); +#endif ObtainReadLock(&afs_xvcache); + uq = QPrev(tq); /* our tvc ptr is still good until now */ AFS_FAST_RELE(tvc); -#endif + } else { + uq = QPrev(tq); } } ReleaseReadLock(&afs_xvcache);