[master] 26039a7 Don't call up the stack to call ourselves.

Poul-Henning Kamp phk at FreeBSD.org
Wed Dec 16 21:44:15 CET 2015


commit 26039a79517476eee4d3a207175f8e3082d8654f
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Wed Dec 16 20:43:56 2015 +0000

    Don't call up the stack to call ourselves.

diff --git a/bin/varnishd/storage/storage_simple.c b/bin/varnishd/storage/storage_simple.c
index 6ce07c6..6550c0f 100644
--- a/bin/varnishd/storage/storage_simple.c
+++ b/bin/varnishd/storage/storage_simple.c
@@ -181,6 +181,31 @@ getobj(struct worker *wrk, struct objcore *oc)
 	return (o);
 }
 
+static void __match_proto__(objslim_f)
+sml_slim(struct worker *wrk, struct objcore *oc)
+{
+	const struct stevedore *stv;
+	struct object *o;
+	struct storage *st, *stn;
+
+	CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
+
+	stv = oc->stobj->stevedore;
+	CHECK_OBJ_NOTNULL(stv, STEVEDORE_MAGIC);
+	o = getobj(wrk, oc);
+	CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
+
+	if (o->esidata != NULL) {
+		sml_stv_free(stv, o->esidata);
+		o->esidata = NULL;
+	}
+	VTAILQ_FOREACH_SAFE(st, &o->list, list, stn) {
+		CHECK_OBJ_NOTNULL(st, STORAGE_MAGIC);
+		VTAILQ_REMOVE(&o->list, st, list);
+		sml_stv_free(stv, st);
+	}
+}
+
 static void __match_proto__(objfree_f)
 sml_objfree(struct worker *wrk, struct objcore *oc)
 {
@@ -189,7 +214,7 @@ sml_objfree(struct worker *wrk, struct objcore *oc)
 	CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
 	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
 	CHECK_OBJ_NOTNULL(oc->stobj, STOREOBJ_MAGIC);
-	ObjSlim(wrk, oc);
+	sml_slim(wrk, oc);
 	CAST_OBJ_NOTNULL(o, oc->stobj->priv, OBJECT_MAGIC);
 	o->magic = 0;
 
@@ -429,31 +454,6 @@ sml_trimstore(struct worker *wrk, struct objcore *oc)
 	}
 }
 
-static void __match_proto__(objslim_f)
-sml_slim(struct worker *wrk, struct objcore *oc)
-{
-	const struct stevedore *stv;
-	struct object *o;
-	struct storage *st, *stn;
-
-	CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
-
-	stv = oc->stobj->stevedore;
-	CHECK_OBJ_NOTNULL(stv, STEVEDORE_MAGIC);
-	o = getobj(wrk, oc);
-	CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
-
-	if (o->esidata != NULL) {
-		sml_stv_free(stv, o->esidata);
-		o->esidata = NULL;
-	}
-	VTAILQ_FOREACH_SAFE(st, &o->list, list, stn) {
-		CHECK_OBJ_NOTNULL(st, STORAGE_MAGIC);
-		VTAILQ_REMOVE(&o->list, st, list);
-		sml_stv_free(stv, st);
-	}
-}
-
 static void * __match_proto__(objgetattr_f)
 sml_getattr(struct worker *wrk, struct objcore *oc, enum obj_attr attr,
    ssize_t *len)



More information about the varnish-commit mailing list