From c8825f61c823747d614706dfaf823abc40bb2226 Mon Sep 17 00:00:00 2001 From: Chaskiel M Grundman Date: Fri, 17 Feb 2006 21:53:21 +0000 Subject: [PATCH] STABLE14-flushvolume-vhashq-consistency-20060217 avoid having vflushed vnodes in play (cherry picked from commit c320fae82541d3026c9d2a89ffce60fd17ad5ca5) --- src/afs/afs_pioctl.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/afs/afs_pioctl.c b/src/afs/afs_pioctl.c index 18ef43f04..7a524807d 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); -- 2.39.5