diff --git a/src/lib/core/errinj.h b/src/lib/core/errinj.h
index 27562b8b50cf3cca8271f4fe191b3dee7e035803..b9582d7732d639a530f8f20300ee231b2fecf728 100644
--- a/src/lib/core/errinj.h
+++ b/src/lib/core/errinj.h
@@ -166,6 +166,7 @@ errinj_foreach(errinj_cb cb, void *cb_ctx);
 #  define ERROR_INJECT(ID, CODE)
 #  define ERROR_INJECT_WHILE(ID, CODE)
 #  define errinj(ID, TYPE) ((struct errinj *) NULL)
+#  define ERROR_INJECT_COUNTDOWN(ID, CODE)
 #else
 #  /* Returns the error injection by id */
 #  define errinj(ID, TYPE) \
@@ -184,6 +185,12 @@ errinj_foreach(errinj_cb cb, void *cb_ctx);
 		while (errinj(ID, ERRINJ_BOOL)->bparam) \
 			CODE; \
 	} while (0)
+#  define ERROR_INJECT_COUNTDOWN(ID, CODE)				\
+	do {								\
+		if (errinj(ID, ERRINJ_INT)->iparam-- == 0) {		\
+			CODE;						\
+		}							\
+	} while (0)
 #endif
 
 #define ERROR_INJECT_RETURN(ID) ERROR_INJECT(ID, return -1)