diff --git a/include/workqueue.h b/include/workqueue.h
deleted file mode 100644
index c45dc4fb..00000000
--- a/include/workqueue.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) 2017 Oracle.  All Rights Reserved.
- * Author: Darrick J. Wong <darrick.wong@oracle.com>
- */
-#ifndef	_WORKQUEUE_H_
-#define	_WORKQUEUE_H_
-
-#include <pthread.h>
-
-struct workqueue;
-
-typedef void workqueue_func_t(struct workqueue *wq, uint32_t index, void *arg);
-
-struct workqueue_item {
-	struct workqueue	*queue;
-	struct workqueue_item	*next;
-	workqueue_func_t	*function;
-	void			*arg;
-	uint32_t		index;
-};
-
-struct workqueue {
-	void			*wq_ctx;
-	pthread_t		*threads;
-	struct workqueue_item	*next_item;
-	struct workqueue_item	*last_item;
-	pthread_mutex_t		lock;
-	pthread_cond_t		wakeup;
-	unsigned int		item_count;
-	unsigned int		thread_count;
-	bool			terminate;
-};
-
-int workqueue_create(struct workqueue *wq, void *wq_ctx,
-		unsigned int nr_workers);
-int workqueue_add(struct workqueue *wq, workqueue_func_t fn,
-		uint32_t index, void *arg);
-void workqueue_destroy(struct workqueue *wq);
-
-#endif	/* _WORKQUEUE_H_ */
diff --git a/libfrog/Makefile b/libfrog/Makefile
index 482893ef..5506c96f 100644
--- a/libfrog/Makefile
+++ b/libfrog/Makefile
@@ -37,7 +37,8 @@ crc32table.h \
 fsgeom.h \
 ptvar.h \
 radix-tree.h \
-topology.h
+topology.h \
+workqueue.h
 
 LSRCFILES += gen_crc32table.c
 
diff --git a/libfrog/workqueue.h b/libfrog/workqueue.h
new file mode 100644
index 00000000..a1f3a57c
--- /dev/null
+++ b/libfrog/workqueue.h
@@ -0,0 +1,41 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2017 Oracle.  All Rights Reserved.
+ * Author: Darrick J. Wong <darrick.wong@oracle.com>
+ */
+#ifndef	__LIBFROG_WORKQUEUE_H__
+#define	__LIBFROG_WORKQUEUE_H__
+
+#include <pthread.h>
+
+struct workqueue;
+
+typedef void workqueue_func_t(struct workqueue *wq, uint32_t index, void *arg);
+
+struct workqueue_item {
+	struct workqueue	*queue;
+	struct workqueue_item	*next;
+	workqueue_func_t	*function;
+	void			*arg;
+	uint32_t		index;
+};
+
+struct workqueue {
+	void			*wq_ctx;
+	pthread_t		*threads;
+	struct workqueue_item	*next_item;
+	struct workqueue_item	*last_item;
+	pthread_mutex_t		lock;
+	pthread_cond_t		wakeup;
+	unsigned int		item_count;
+	unsigned int		thread_count;
+	bool			terminate;
+};
+
+int workqueue_create(struct workqueue *wq, void *wq_ctx,
+		unsigned int nr_workers);
+int workqueue_add(struct workqueue *wq, workqueue_func_t fn,
+		uint32_t index, void *arg);
+void workqueue_destroy(struct workqueue *wq);
+
+#endif	/* __LIBFROG_WORKQUEUE_H__ */
diff --git a/repair/threads.h b/repair/threads.h
index 22f74d1f..55c7c632 100644
--- a/repair/threads.h
+++ b/repair/threads.h
@@ -3,7 +3,7 @@
 #ifndef	_XFS_REPAIR_THREADS_H_
 #define	_XFS_REPAIR_THREADS_H_
 
-#include "workqueue.h"
+#include "libfrog/workqueue.h"
 
 void	thread_init(void);
 
diff --git a/scrub/fscounters.c b/scrub/fscounters.c
index f8cc1e94..9635c44f 100644
--- a/scrub/fscounters.c
+++ b/scrub/fscounters.c
@@ -11,7 +11,7 @@
 #include "xfs_arch.h"
 #include "xfs_format.h"
 #include "path.h"
-#include "workqueue.h"
+#include "libfrog/workqueue.h"
 #include "xfs_scrub.h"
 #include "common.h"
 #include "fscounters.h"
diff --git a/scrub/inodes.c b/scrub/inodes.c
index faffef54..19923de5 100644
--- a/scrub/inodes.c
+++ b/scrub/inodes.c
@@ -13,7 +13,7 @@
 #include "xfs_format.h"
 #include "handle.h"
 #include "path.h"
-#include "workqueue.h"
+#include "libfrog/workqueue.h"
 #include "xfs_scrub.h"
 #include "common.h"
 #include "inodes.h"
diff --git a/scrub/phase1.c b/scrub/phase1.c
index 23df9a15..d0e77cab 100644
--- a/scrub/phase1.c
+++ b/scrub/phase1.c
@@ -14,7 +14,7 @@
 #include <stdint.h>
 #include <pthread.h>
 #include "libfrog.h"
-#include "workqueue.h"
+#include "libfrog/workqueue.h"
 #include "input.h"
 #include "path.h"
 #include "handle.h"
diff --git a/scrub/phase2.c b/scrub/phase2.c
index a80da7fd..baec11dd 100644
--- a/scrub/phase2.c
+++ b/scrub/phase2.c
@@ -9,7 +9,7 @@
 #include <sys/statvfs.h>
 #include "list.h"
 #include "path.h"
-#include "workqueue.h"
+#include "libfrog/workqueue.h"
 #include "xfs_scrub.h"
 #include "common.h"
 #include "scrub.h"
diff --git a/scrub/phase3.c b/scrub/phase3.c
index 8c02f1cb..64a499c3 100644
--- a/scrub/phase3.c
+++ b/scrub/phase3.c
@@ -9,7 +9,7 @@
 #include <sys/statvfs.h>
 #include "list.h"
 #include "path.h"
-#include "workqueue.h"
+#include "libfrog/workqueue.h"
 #include "xfs_scrub.h"
 #include "common.h"
 #include "counter.h"
diff --git a/scrub/phase4.c b/scrub/phase4.c
index 49f00723..14074835 100644
--- a/scrub/phase4.c
+++ b/scrub/phase4.c
@@ -10,7 +10,7 @@
 #include <sys/statvfs.h>
 #include "list.h"
 #include "path.h"
-#include "workqueue.h"
+#include "libfrog/workqueue.h"
 #include "xfs_scrub.h"
 #include "common.h"
 #include "progress.h"
diff --git a/scrub/phase5.c b/scrub/phase5.c
index f3ee22e6..ab015821 100644
--- a/scrub/phase5.c
+++ b/scrub/phase5.c
@@ -15,7 +15,7 @@
 #include "handle.h"
 #include "list.h"
 #include "path.h"
-#include "workqueue.h"
+#include "libfrog/workqueue.h"
 #include "xfs_scrub.h"
 #include "common.h"
 #include "inodes.h"
diff --git a/scrub/phase6.c b/scrub/phase6.c
index 9b0d228a..d0e62cea 100644
--- a/scrub/phase6.c
+++ b/scrub/phase6.c
@@ -9,7 +9,7 @@
 #include <sys/statvfs.h>
 #include "handle.h"
 #include "path.h"
-#include "workqueue.h"
+#include "libfrog/workqueue.h"
 #include "xfs_scrub.h"
 #include "common.h"
 #include "libfrog/bitmap.h"
diff --git a/scrub/read_verify.c b/scrub/read_verify.c
index d56f4893..828f6be6 100644
--- a/scrub/read_verify.c
+++ b/scrub/read_verify.c
@@ -8,7 +8,7 @@
 #include <stdlib.h>
 #include <sys/statvfs.h>
 #include "libfrog/ptvar.h"
-#include "workqueue.h"
+#include "libfrog/workqueue.h"
 #include "path.h"
 #include "xfs_scrub.h"
 #include "common.h"
diff --git a/scrub/spacemap.c b/scrub/spacemap.c
index c3621a3a..774efbaa 100644
--- a/scrub/spacemap.c
+++ b/scrub/spacemap.c
@@ -8,7 +8,7 @@
 #include <string.h>
 #include <pthread.h>
 #include <sys/statvfs.h>
-#include "workqueue.h"
+#include "libfrog/workqueue.h"
 #include "path.h"
 #include "xfs_scrub.h"
 #include "common.h"
diff --git a/scrub/vfs.c b/scrub/vfs.c
index 7b0b5bcd..7d79e7f7 100644
--- a/scrub/vfs.c
+++ b/scrub/vfs.c
@@ -10,7 +10,7 @@
 #include <sys/statvfs.h>
 #include "handle.h"
 #include "path.h"
-#include "workqueue.h"
+#include "libfrog/workqueue.h"
 #include "xfs_scrub.h"
 #include "common.h"
 #include "vfs.h"
