[master] 75f8f3a More reduction of vfp_ctx->bo usage

Poul-Henning Kamp phk at FreeBSD.org
Tue Aug 19 10:19:45 CEST 2014


commit 75f8f3a1c1487565854c5700b4d1416237cc7bec
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Tue Aug 19 08:19:22 2014 +0000

    More reduction of vfp_ctx->bo usage

diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 8fb679f..4166f40 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -465,6 +465,7 @@ struct vfp_ctx {
 
 	struct vsl_log		*vsl;
 	struct http		*http;
+	struct http		*esi_req;
 	struct body		*body;
 	uint64_t		bodybytes;
 };
diff --git a/bin/varnishd/cache/cache_esi_fetch.c b/bin/varnishd/cache/cache_esi_fetch.c
index d0f1bc6..a0d10f8 100644
--- a/bin/varnishd/cache/cache_esi_fetch.c
+++ b/bin/varnishd/cache/cache_esi_fetch.c
@@ -110,7 +110,6 @@ vfp_esi_end(struct vfp_ctx *vc, struct vef_priv *vef,
 	void *p;
 
 	CHECK_OBJ_NOTNULL(vc, VFP_CTX_MAGIC);
-	CHECK_OBJ_NOTNULL(vc->bo, BUSYOBJ_MAGIC);
 	CHECK_OBJ_NOTNULL(vef, VEF_MAGIC);
 
 	vsb = VEP_Finish(vef->vep);
@@ -146,13 +145,13 @@ vfp_esi_gzip_init(struct vfp_ctx *vc, struct vfp_entry *vfe)
 	struct vef_priv *vef;
 
 	CHECK_OBJ_NOTNULL(vc, VFP_CTX_MAGIC);
-	CHECK_OBJ_NOTNULL(vc->bo, BUSYOBJ_MAGIC);
+	CHECK_OBJ_NOTNULL(vc->esi_req, HTTP_MAGIC);
 	CHECK_OBJ_NOTNULL(vfe, VFP_ENTRY_MAGIC);
 	ALLOC_OBJ(vef, VEF_MAGIC);
 	if (vef == NULL)
 		return (VFP_ERROR);
 	vef->vgz = VGZ_NewGzip(vc->vsl, "G F E");
-	vef->vep = VEP_Init(vc, vc->bo->bereq, vfp_vep_callback, vef);
+	vef->vep = VEP_Init(vc, vc->esi_req, vfp_vep_callback, vef);
 	vef->ibuf_sz = cache_param->gzip_buffer;
 	vef->ibuf = calloc(1L, vef->ibuf_sz);
 	if (vef->ibuf == NULL)
@@ -178,7 +177,6 @@ vfp_esi_gzip_pull(struct vfp_ctx *vc, struct vfp_entry *vfe, void *p,
 	struct vef_priv *vef;
 
 	CHECK_OBJ_NOTNULL(vc, VFP_CTX_MAGIC);
-	CHECK_OBJ_NOTNULL(vc->bo, BUSYOBJ_MAGIC);
 	CHECK_OBJ_NOTNULL(vfe, VFP_ENTRY_MAGIC);
 	CAST_OBJ_NOTNULL(vef, vfe->priv1, VEF_MAGIC);
 	AN(p);
@@ -219,11 +217,11 @@ vfp_esi_init(struct vfp_ctx *vc, struct vfp_entry *vfe)
 	struct vef_priv *vef;
 
 	CHECK_OBJ_NOTNULL(vc, VFP_CTX_MAGIC);
-	CHECK_OBJ_NOTNULL(vc->bo, BUSYOBJ_MAGIC);
+	CHECK_OBJ_NOTNULL(vc->esi_req, HTTP_MAGIC);
 	ALLOC_OBJ(vef, VEF_MAGIC);
 	if (vef == NULL)
 		return (VFP_ERROR);
-	vef->vep = VEP_Init(vc, vc->bo->bereq, NULL, NULL);
+	vef->vep = VEP_Init(vc, vc->esi_req, NULL, NULL);
 	vfe->priv1 = vef;
 	return (VFP_OK);
 }
@@ -236,7 +234,6 @@ vfp_esi_pull(struct vfp_ctx *vc, struct vfp_entry *vfe, void *p, ssize_t *lp)
 	struct vef_priv *vef;
 
 	CHECK_OBJ_NOTNULL(vc, VFP_CTX_MAGIC);
-	CHECK_OBJ_NOTNULL(vc->bo, BUSYOBJ_MAGIC);
 	CHECK_OBJ_NOTNULL(vfe, VFP_ENTRY_MAGIC);
 	CAST_OBJ_NOTNULL(vef, vfe->priv1, VEF_MAGIC);
 	AN(p);
diff --git a/bin/varnishd/cache/cache_fetch.c b/bin/varnishd/cache/cache_fetch.c
index 2ad6a48..faad2b1 100644
--- a/bin/varnishd/cache/cache_fetch.c
+++ b/bin/varnishd/cache/cache_fetch.c
@@ -367,6 +367,7 @@ vbf_stp_startfetch(struct worker *wrk, struct busyobj *bo)
 	bo->vfc->oc = bo->fetch_objcore;
 	bo->vfc->stats = bo->stats;
 	bo->vfc->http = bo->beresp;
+	bo->vfc->esi_req = bo->bereq;
 	bo->vfc->vsl = bo->vsl;
 
 	VCL_backend_response_method(bo->vcl, wrk, NULL, bo, bo->beresp->ws);
@@ -689,6 +690,7 @@ vbf_stp_error(struct worker *wrk, struct busyobj *bo)
 	bo->vfc->oc = bo->fetch_objcore;
 	bo->vfc->stats = bo->stats;
 	bo->vfc->http = bo->beresp;
+	bo->vfc->esi_req = bo->bereq;
 	bo->vfc->vsl = bo->vsl;
 
 	if (vbf_beresp2obj(bo))
diff --git a/bin/varnishd/cache/cache_fetch_proc.c b/bin/varnishd/cache/cache_fetch_proc.c
index 43d89ef..5c42c83 100644
--- a/bin/varnishd/cache/cache_fetch_proc.c
+++ b/bin/varnishd/cache/cache_fetch_proc.c
@@ -161,7 +161,6 @@ VFP_Suck(struct vfp_ctx *vc, void *p, ssize_t *lp)
 	struct vfp_entry *vfe;
 
 	CHECK_OBJ_NOTNULL(vc, VFP_CTX_MAGIC);
-	CHECK_OBJ_NOTNULL(vc->bo, BUSYOBJ_MAGIC);
 	AN(p);
 	AN(lp);
 	vfe = vc->vfp_nxt;
@@ -262,7 +261,7 @@ VFP_Push(struct vfp_ctx *vc, const struct vfp *vfp, int top)
 	struct vfp_entry *vfe;
 
 	CHECK_OBJ_NOTNULL(vc, VFP_CTX_MAGIC);
-	vfe = (void*)WS_Alloc(vc->bo->ws, sizeof *vfe);
+	vfe = (void*)WS_Alloc(vc->http->ws, sizeof *vfe);
 	AN(vfe);
 	vfe->magic = VFP_ENTRY_MAGIC;
 	vfe->vfp = vfp;
diff --git a/bin/varnishd/cache/cache_gzip.c b/bin/varnishd/cache/cache_gzip.c
index 96406ee..119be81 100644
--- a/bin/varnishd/cache/cache_gzip.c
+++ b/bin/varnishd/cache/cache_gzip.c
@@ -567,7 +567,6 @@ vfp_gzip_pull(struct vfp_ctx *vc, struct vfp_entry *vfe, void *p,
 	enum vfp_status vp = VFP_ERROR;
 
 	CHECK_OBJ_NOTNULL(vc, VFP_CTX_MAGIC);
-	CHECK_OBJ_NOTNULL(vc->bo, BUSYOBJ_MAGIC);
 	CHECK_OBJ_NOTNULL(vfe, VFP_ENTRY_MAGIC);
 	CAST_OBJ_NOTNULL(vg, vfe->priv1, VGZ_MAGIC);
 	AN(p);
@@ -622,7 +621,6 @@ vfp_testgunzip_pull(struct vfp_ctx *vc, struct vfp_entry *vfe, void *p,
 	enum vfp_status vp;
 
 	CHECK_OBJ_NOTNULL(vc, VFP_CTX_MAGIC);
-	CHECK_OBJ_NOTNULL(vc->bo, BUSYOBJ_MAGIC);
 	CHECK_OBJ_NOTNULL(vfe, VFP_ENTRY_MAGIC);
 	CAST_OBJ_NOTNULL(vg, vfe->priv1, VGZ_MAGIC);
 	AN(p);
diff --git a/bin/varnishd/storage/stevedore.c b/bin/varnishd/storage/stevedore.c
index 39fddd9..bbec41a 100644
--- a/bin/varnishd/storage/stevedore.c
+++ b/bin/varnishd/storage/stevedore.c
@@ -194,7 +194,6 @@ stv_alloc_obj(const struct vfp_ctx *vc, size_t size)
 	 * keep an object inside the same stevedore.
 	 */
 	CHECK_OBJ_NOTNULL(vc, VFP_CTX_MAGIC);
-	CHECK_OBJ_NOTNULL(vc->bo, BUSYOBJ_MAGIC);
 	stv = vc->body->stevedore;
 	CHECK_OBJ_NOTNULL(stv, STEVEDORE_MAGIC);
 



More information about the varnish-commit mailing list