[master] c1dac64 Move vef_priv from worker to busyobj

Poul-Henning Kamp phk at varnish-cache.org
Tue Nov 29 20:09:50 CET 2011


commit c1dac64284b5f9298d2fb42ab4f822f16f4dc1a4
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Tue Nov 29 19:09:39 2011 +0000

    Move vef_priv from worker to busyobj

diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index c4d6f08..a0e2821 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -332,7 +332,6 @@ struct worker {
 	struct http		*beresp;
 	struct vbc		*vbc;
 
-	struct vef_priv		*vef_priv;
 	unsigned		do_stream;
 	unsigned		do_esi;
 	unsigned		do_gzip;
@@ -507,6 +506,7 @@ struct busyobj {
 	struct http_conn	htc;
 
 	enum body_status	body_status;
+	struct vef_priv		*vef_priv;
 };
 
 /* Object structure --------------------------------------------------*/
diff --git a/bin/varnishd/cache/cache_esi_fetch.c b/bin/varnishd/cache/cache_esi_fetch.c
index 5795849..e0765b6 100644
--- a/bin/varnishd/cache/cache_esi_fetch.c
+++ b/bin/varnishd/cache/cache_esi_fetch.c
@@ -150,7 +150,8 @@ vfp_vep_callback(struct worker *w, ssize_t l, enum vgz_flag flg)
 	int i;
 
 	CHECK_OBJ_NOTNULL(w, WORKER_MAGIC);
-	vef = w->vef_priv;
+	CHECK_OBJ_NOTNULL(w->busyobj, BUSYOBJ_MAGIC);
+	vef = w->busyobj->vef_priv;
 	CHECK_OBJ_NOTNULL(vef, VEF_MAGIC);
 	assert(l >= 0);
 
@@ -211,7 +212,8 @@ vfp_esi_bytes_ug(struct worker *w, struct http_conn *htc, ssize_t bytes)
 	struct vef_priv *vef;
 
 	CHECK_OBJ_NOTNULL(w, WORKER_MAGIC);
-	vef = w->vef_priv;
+	CHECK_OBJ_NOTNULL(w->busyobj, BUSYOBJ_MAGIC);
+	vef = w->busyobj->vef_priv;
 	CHECK_OBJ_NOTNULL(vef, VEF_MAGIC);
 
 	while (bytes > 0) {
@@ -252,7 +254,8 @@ vfp_esi_bytes_gg(struct worker *w, struct http_conn *htc, size_t bytes)
 	int i;
 
 	CHECK_OBJ_NOTNULL(w, WORKER_MAGIC);
-	vef = w->vef_priv;
+	CHECK_OBJ_NOTNULL(w->busyobj, BUSYOBJ_MAGIC);
+	vef = w->busyobj->vef_priv;
 	CHECK_OBJ_NOTNULL(vef, VEF_MAGIC);
 	assert(sizeof ibuf >= 1024);
 	ibuf2[0] = 0; /* For Flexelint */
@@ -308,19 +311,19 @@ vfp_esi_begin(struct worker *w, size_t estimate)
 		ALLOC_OBJ(vef, VEF_MAGIC);
 		AN(vef);
 		vef->vgz = VGZ_NewGzip(w, "G F E");
-		AZ(w->vef_priv);
-		w->vef_priv = vef;
+		AZ(w->busyobj->vef_priv);
+		w->busyobj->vef_priv = vef;
 		VEP_Init(w, vfp_vep_callback);
 	} else if (w->busyobj->is_gzip) {
 		w->busyobj->vgz_rx = VGZ_NewUngzip(w, "U F E");
 		ALLOC_OBJ(vef, VEF_MAGIC);
 		AN(vef);
 		vef->vgz = VGZ_NewGzip(w, "G F E");
-		AZ(w->vef_priv);
-		w->vef_priv = vef;
+		AZ(w->busyobj->vef_priv);
+		w->busyobj->vef_priv = vef;
 		VEP_Init(w, vfp_vep_callback);
 	} else {
-		AZ(w->vef_priv);
+		AZ(w->busyobj->vef_priv);
 		VEP_Init(w, NULL);
 	}
 
@@ -358,6 +361,7 @@ vfp_esi_end(struct worker *w)
 	int retval;
 
 	CHECK_OBJ_NOTNULL(w, WORKER_MAGIC);
+	CHECK_OBJ_NOTNULL(w->busyobj, BUSYOBJ_MAGIC);
 	AN(w->busyobj->vep);
 
 	retval = w->busyobj->fetch_failed;
@@ -387,10 +391,10 @@ vfp_esi_end(struct worker *w)
 		VSB_delete(vsb);
 	}
 
-	if (w->vef_priv != NULL) {
-		vef = w->vef_priv;
+	vef = w->busyobj->vef_priv;
+	if (vef != NULL) {
 		CHECK_OBJ_NOTNULL(vef, VEF_MAGIC);
-		w->vef_priv = NULL;
+		w->busyobj->vef_priv = NULL;
 		VGZ_UpdateObj(vef->vgz, w->busyobj->fetch_obj);
 		if (VGZ_Destroy(&vef->vgz,  -1) != VGZ_END)
 			retval = FetchError(w,



More information about the varnish-commit mailing list