[master] 0f0eae3 Move fetch_failed from worker to busyobj

Poul-Henning Kamp phk at varnish-cache.org
Tue Nov 29 18:51:18 CET 2011


commit 0f0eae3726097ec9e77ef6dd15471a7b8b077856
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Tue Nov 29 17:50:53 2011 +0000

    Move fetch_failed from worker to busyobj

diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 634d9aa..8cffdef 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -336,7 +336,6 @@ struct worker {
 	enum body_status	body_status;
 	struct vgz		*vgz_rx;
 	struct vef_priv		*vef_priv;
-	unsigned		fetch_failed;
 	unsigned		do_stream;
 	unsigned		do_esi;
 	unsigned		do_gzip;
@@ -347,7 +346,7 @@ struct worker {
 	/* Stream state */
 	struct stream_ctx	*sctx;
 
-	/* ESI stuff */
+	/* ESI delivery stuff */
 	int			gzip_resp;
 	ssize_t			l_crc;
 	uint32_t		crc;
@@ -503,6 +502,7 @@ struct busyobj {
 
 	struct vfp		*vfp;
 	struct vep_state	*vep;
+	unsigned		fetch_failed;
 };
 
 /* Object structure --------------------------------------------------*/
diff --git a/bin/varnishd/cache/cache_esi_fetch.c b/bin/varnishd/cache/cache_esi_fetch.c
index f5748a3..b23538c 100644
--- a/bin/varnishd/cache/cache_esi_fetch.c
+++ b/bin/varnishd/cache/cache_esi_fetch.c
@@ -334,7 +334,7 @@ vfp_esi_bytes(struct worker *w, struct http_conn *htc, ssize_t bytes)
 	int i;
 
 	CHECK_OBJ_NOTNULL(w, WORKER_MAGIC);
-	AZ(w->fetch_failed);
+	AZ(w->busyobj->fetch_failed);
 	AN(w->busyobj->vep);
 	assert(w->htc == htc);
 	if (w->busyobj->is_gzip && w->do_gunzip)
@@ -360,7 +360,7 @@ vfp_esi_end(struct worker *w)
 	CHECK_OBJ_NOTNULL(w, WORKER_MAGIC);
 	AN(w->busyobj->vep);
 
-	retval = w->fetch_failed;
+	retval = w->busyobj->fetch_failed;
 
 	if (w->vgz_rx != NULL && VGZ_Destroy(&w->vgz_rx, -1) != VGZ_END)
 		retval = FetchError(w,
diff --git a/bin/varnishd/cache/cache_fetch.c b/bin/varnishd/cache/cache_fetch.c
index 9413300..895a5cb 100644
--- a/bin/varnishd/cache/cache_fetch.c
+++ b/bin/varnishd/cache/cache_fetch.c
@@ -46,7 +46,7 @@ static unsigned fetchfrag;
  * We want to issue the first error we encounter on fetching and
  * supress the rest.  This function does that.
  *
- * Other code is allowed to look at w->fetch_failed to bail out
+ * Other code is allowed to look at w->busyobj->fetch_failed to bail out
  *
  * For convenience, always return -1
  */
@@ -56,13 +56,13 @@ FetchError2(struct worker *w, const char *error, const char *more)
 {
 
 	CHECK_OBJ_NOTNULL(w, WORKER_MAGIC);
-	if (!w->fetch_failed) {
+	if (!w->busyobj->fetch_failed) {
 		if (more == NULL)
 			WSLB(w, SLT_FetchError, "%s", error);
 		else
 			WSLB(w, SLT_FetchError, "%s: %s", error, more);
 	}
-	w->fetch_failed = 1;
+	w->busyobj->fetch_failed = 1;
 	return (-1);
 }
 
@@ -112,7 +112,7 @@ vfp_nop_bytes(struct worker *w, struct http_conn *htc, ssize_t bytes)
 	ssize_t l, wl;
 	struct storage *st;
 
-	AZ(w->fetch_failed);
+	AZ(w->busyobj->fetch_failed);
 	while (bytes > 0) {
 		st = FetchStorage(w, 0);
 		if (st == NULL)
@@ -503,7 +503,7 @@ FetchBody(struct worker *w, struct object *obj)
 	AZ(VTAILQ_FIRST(&obj->store));
 
 	w->fetch_obj = obj;
-	w->fetch_failed = 0;
+	w->busyobj->fetch_failed = 0;
 
 	/* XXX: pick up estimate from objdr ? */
 	cl = 0;
@@ -579,7 +579,7 @@ FetchBody(struct worker *w, struct object *obj)
 		obj->len = 0;
 		return (__LINE__);
 	}
-	AZ(w->fetch_failed);
+	AZ(w->busyobj->fetch_failed);
 
 	if (cls == 0 && w->do_close)
 		cls = 1;
diff --git a/bin/varnishd/cache/cache_gzip.c b/bin/varnishd/cache/cache_gzip.c
index 57b25a5..a175fdf 100644
--- a/bin/varnishd/cache/cache_gzip.c
+++ b/bin/varnishd/cache/cache_gzip.c
@@ -471,7 +471,7 @@ vfp_gunzip_bytes(struct worker *w, struct http_conn *htc, ssize_t bytes)
 	size_t dl;
 	const void *dp;
 
-	AZ(w->fetch_failed);
+	AZ(w->busyobj->fetch_failed);
 	vg = w->vgz_rx;
 	CHECK_OBJ_NOTNULL(vg, VGZ_MAGIC);
 	AZ(vg->vz.avail_in);
@@ -508,7 +508,7 @@ vfp_gunzip_end(struct worker *w)
 	vg = w->vgz_rx;
 	w->vgz_rx = NULL;
 	CHECK_OBJ_NOTNULL(vg, VGZ_MAGIC);
-	if (w->fetch_failed) {
+	if (w->busyobj->fetch_failed) {
 		(void)VGZ_Destroy(&vg, -1);
 		return(0);
 	}
@@ -549,7 +549,7 @@ vfp_gzip_bytes(struct worker *w, struct http_conn *htc, ssize_t bytes)
 	size_t dl;
 	const void *dp;
 
-	AZ(w->fetch_failed);
+	AZ(w->busyobj->fetch_failed);
 	vg = w->vgz_rx;
 	CHECK_OBJ_NOTNULL(vg, VGZ_MAGIC);
 	AZ(vg->vz.avail_in);
@@ -586,7 +586,7 @@ vfp_gzip_end(struct worker *w)
 	vg = w->vgz_rx;
 	CHECK_OBJ_NOTNULL(vg, VGZ_MAGIC);
 	w->vgz_rx = NULL;
-	if (w->fetch_failed) {
+	if (w->busyobj->fetch_failed) {
 		(void)VGZ_Destroy(&vg, -1);
 		return(0);
 	}
@@ -637,7 +637,7 @@ vfp_testgzip_bytes(struct worker *w, struct http_conn *htc, ssize_t bytes)
 	const void *dp;
 	struct storage *st;
 
-	AZ(w->fetch_failed);
+	AZ(w->busyobj->fetch_failed);
 	vg = w->vgz_rx;
 	CHECK_OBJ_NOTNULL(vg, VGZ_MAGIC);
 	AZ(vg->vz.avail_in);
@@ -680,7 +680,7 @@ vfp_testgzip_end(struct worker *w)
 	vg = w->vgz_rx;
 	w->vgz_rx = NULL;
 	CHECK_OBJ_NOTNULL(vg, VGZ_MAGIC);
-	if (w->fetch_failed) {
+	if (w->busyobj->fetch_failed) {
 		(void)VGZ_Destroy(&vg, -1);
 		return(0);
 	}



More information about the varnish-commit mailing list