[master] 920e1d3 Don't call any VFP->fini until we call all VFP->fini, and always call it, no matter what.

Poul-Henning Kamp phk at FreeBSD.org
Wed Jul 9 17:57:28 CEST 2014


commit 920e1d3626884509fd7d0b5744328e5a7f696444
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Wed Jul 9 15:56:39 2014 +0000

    Don't call any VFP->fini until we call all VFP->fini, and always call
    it, no matter what.

diff --git a/bin/varnishd/cache/cache_fetch_proc.c b/bin/varnishd/cache/cache_fetch_proc.c
index a60269a..35d4bc2 100644
--- a/bin/varnishd/cache/cache_fetch_proc.c
+++ b/bin/varnishd/cache/cache_fetch_proc.c
@@ -114,7 +114,7 @@ vfp_suck_fini(struct busyobj *bo)
 	struct vfp_entry *vfe;
 
 	VTAILQ_FOREACH(vfe, &bo->vfp, list)
-		if(vfe->closed == VFP_OK && vfe->vfp->fini != NULL)
+		if(vfe->vfp->fini != NULL)
 			vfe->vfp->fini(bo, vfe);
 }
 
@@ -162,8 +162,6 @@ VFP_Suck(struct busyobj *bo, void *p, ssize_t *lp)
 	} else if (vfe->closed == VFP_OK) {
 		vp = vfe->vfp->pull(bo, vfe, p, lp);
 		if (vp == VFP_END || vp == VFP_ERROR) {
-			if (vfe->vfp->fini != NULL)
-				vfe->vfp->fini(bo, vfe);
 			vfe->closed = vp;
 		} else if (vp != VFP_OK)
 			(void)VFP_Error(bo, "Fetch filter %s returned %d",



More information about the varnish-commit mailing list