From c320fae82541d3026c9d2a89ffce60fd17ad5ca5 Mon Sep 17 00:00:00 2001 From: Chaskiel M Grundman Date: Fri, 17 Feb 2006 21:43:42 +0000 Subject: [PATCH] flushvolume-vhashq-consistency-20060217 avoid having vflushed vnodes in play --- 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 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); -- 2.39.5