diff --git a/aes.c b/aes.c
index eb37adbed860674a059f8affffe8aae5b786575c..1da7bff1c96a4ddbf40bf4c5c06b8d92a891e627 100644
--- a/aes.c
+++ b/aes.c
@@ -28,7 +28,7 @@
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "qemu-common.h"
-#include "aes.h"
+#include "block/aes.h"
 
 #ifndef NDEBUG
 #define NDEBUG
diff --git a/aio-posix.c b/aio-posix.c
index 05cc84e121283edc6c9135ee5fcbacadb471985b..d1e1bc2c75af15cb642e2c4831fb7d8aa0993cd4 100644
--- a/aio-posix.c
+++ b/aio-posix.c
@@ -14,7 +14,7 @@
  */
 
 #include "qemu-common.h"
-#include "block.h"
+#include "block/block.h"
 #include "qemu-queue.h"
 #include "qemu_socket.h"
 
diff --git a/aio-win32.c b/aio-win32.c
index cec4646635b7dd2900d408ac2975a8b78be20612..9a26f9c3d970351975bab675f30c70cfc5422b7a 100644
--- a/aio-win32.c
+++ b/aio-win32.c
@@ -16,7 +16,7 @@
  */
 
 #include "qemu-common.h"
-#include "block.h"
+#include "block/block.h"
 #include "qemu-queue.h"
 #include "qemu_socket.h"
 
diff --git a/async.c b/async.c
index 41ae0c1195258f9209015deca9c5cbacdd05c64d..6df4caf68a3b0920a5dceeae57f5f0e1b1f4d3a6 100644
--- a/async.c
+++ b/async.c
@@ -23,7 +23,7 @@
  */
 
 #include "qemu-common.h"
-#include "qemu-aio.h"
+#include "block/aio.h"
 #include "main-loop.h"
 
 /***********************************************************/
diff --git a/block-migration.c b/block-migration.c
index 71b9601e008d976150375998cb5877547f43963e..c15de9f7503f4d28d306c82b0e59075f8a9a3891 100644
--- a/block-migration.c
+++ b/block-migration.c
@@ -14,7 +14,7 @@
  */
 
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "hw/hw.h"
 #include "qemu-queue.h"
 #include "qemu-timer.h"
diff --git a/block.c b/block.c
index e962a5afe9542fa525b1c7480b9448a3a7ba2a9c..5eab9e2519792b46cd6466978a0c414f76204cb3 100644
--- a/block.c
+++ b/block.c
@@ -25,13 +25,13 @@
 #include "qemu-common.h"
 #include "trace.h"
 #include "monitor.h"
-#include "block_int.h"
-#include "blockjob.h"
+#include "block/block_int.h"
+#include "block/blockjob.h"
 #include "module.h"
 #include "qapi/qmp/qjson.h"
 #include "sysemu.h"
 #include "notify.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 #include "qmp-commands.h"
 #include "qemu-timer.h"
 
diff --git a/block/blkdebug.c b/block/blkdebug.c
index 65556e73e58ace76e2a5a958dbc4ecdab6c04c18..cd2866e7bd54bdd4949d7ac5ac7a6d7cc8bde932 100644
--- a/block/blkdebug.c
+++ b/block/blkdebug.c
@@ -24,7 +24,7 @@
 
 #include "qemu-common.h"
 #include "qemu-config.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 
 typedef struct BDRVBlkdebugState {
diff --git a/block/blkverify.c b/block/blkverify.c
index 4beede77abb8a3e7ce71b4e605e2b1d02b39f815..cde5098e5ad880a155905dffdc67ccb47741509f 100644
--- a/block/blkverify.c
+++ b/block/blkverify.c
@@ -9,7 +9,7 @@
 
 #include <stdarg.h>
 #include "qemu_socket.h" /* for EINPROGRESS on Windows */
-#include "block_int.h"
+#include "block/block_int.h"
 
 typedef struct {
     BlockDriverState *test_file;
diff --git a/block/bochs.c b/block/bochs.c
index ab7944dc43dfc82b52d8686eb47c521ba6cc07a9..2cc7524782e14c5d4e1e65866534f374ab62086d 100644
--- a/block/bochs.c
+++ b/block/bochs.c
@@ -23,7 +23,7 @@
  * THE SOFTWARE.
  */
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 
 /**************************************************************/
diff --git a/block/cloop.c b/block/cloop.c
index 7570eb8e74585b305acad77c4d18aebb88179e7a..da29ff379cafcb3f228d062b75a334654ea466fd 100644
--- a/block/cloop.c
+++ b/block/cloop.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 #include <zlib.h>
 
diff --git a/block/commit.c b/block/commit.c
index e2bb1e241ba7b0aaa3e0e57079f68765c9b08707..61ebdba54f05569fdaa2d0b84cf16d26cf89fa4d 100644
--- a/block/commit.c
+++ b/block/commit.c
@@ -13,8 +13,8 @@
  */
 
 #include "trace.h"
-#include "block_int.h"
-#include "blockjob.h"
+#include "block/block_int.h"
+#include "block/blockjob.h"
 #include "qemu/ratelimit.h"
 
 enum {
diff --git a/block/cow.c b/block/cow.c
index a5a00eb9ca548d334e8431d6e33d322e569296e9..1438ae1e3b4e3a222c52069059d8253321ed47b6 100644
--- a/block/cow.c
+++ b/block/cow.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 
 /**************************************************************/
diff --git a/block/curl.c b/block/curl.c
index 1179484de0d7f09ae6e5ebbba8805b8d72ce08c1..47df9524ea8c7e131f3de77629d819c871b9cefb 100644
--- a/block/curl.c
+++ b/block/curl.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include <curl/curl.h>
 
 // #define DEBUG
diff --git a/block/dmg.c b/block/dmg.c
index 37902a4347ae579fb3ad17be838b3224354e9a84..6ee505a9f542c80be596ffefe3a139e8d1ccb2eb 100644
--- a/block/dmg.c
+++ b/block/dmg.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "bswap.h"
 #include "module.h"
 #include <zlib.h>
diff --git a/block/gluster.c b/block/gluster.c
index 1c90174b13d5582e19ff84248c80c638cf3367ae..4cb4e60227d5f3ce17118e4cc7a71fc6c898d750 100644
--- a/block/gluster.c
+++ b/block/gluster.c
@@ -16,7 +16,7 @@
  * GNU GPL, version 2 or (at your option) any later version.
  */
 #include <glusterfs/api/glfs.h>
-#include "block_int.h"
+#include "block/block_int.h"
 #include "qemu_socket.h"
 #include "uri.h"
 
diff --git a/block/iscsi.c b/block/iscsi.c
index 33b93d8000e98a31bbe8953f84f5f77218373a27..77e619a1fd8cd6b61b4574df660487f17211c506 100644
--- a/block/iscsi.c
+++ b/block/iscsi.c
@@ -29,7 +29,7 @@
 #include "qemu-common.h"
 #include "qemu-config.h"
 #include "qemu-error.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "trace.h"
 #include "hw/scsi-defs.h"
 
diff --git a/block/linux-aio.c b/block/linux-aio.c
index 91ef863241299a252a158660627890d978980f4e..28e5a04e123af973b9978accd4254f345bf3e4c2 100644
--- a/block/linux-aio.c
+++ b/block/linux-aio.c
@@ -8,7 +8,7 @@
  * See the COPYING file in the top-level directory.
  */
 #include "qemu-common.h"
-#include "qemu-aio.h"
+#include "block/aio.h"
 #include "qemu-queue.h"
 #include "block/raw-aio.h"
 #include "event_notifier.h"
diff --git a/block/mirror.c b/block/mirror.c
index b1f5d4fa220b4b939fe9cc772a58467de2f58a4a..8aeacbf12c768e1654ad512a2e2c1be4d81bd588 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -12,8 +12,8 @@
  */
 
 #include "trace.h"
-#include "blockjob.h"
-#include "block_int.h"
+#include "block/blockjob.h"
+#include "block/block_int.h"
 #include "qemu/ratelimit.h"
 
 enum {
diff --git a/block/nbd.c b/block/nbd.c
index e87c248175ca5b86cba27ead88b08c4347721eba..38d6b90ab243d2ab2ec63b863fff2c9a1d788ce7 100644
--- a/block/nbd.c
+++ b/block/nbd.c
@@ -27,9 +27,9 @@
  */
 
 #include "qemu-common.h"
-#include "nbd.h"
+#include "block/nbd.h"
 #include "uri.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 #include "qemu_socket.h"
 
diff --git a/block/parallels.c b/block/parallels.c
index d30f0ecf7775346e0b8f330a7f9f1cd13fd71f64..ae88cd63597f087518c2bbb34bd8b13e9a64e1cd 100644
--- a/block/parallels.c
+++ b/block/parallels.c
@@ -24,7 +24,7 @@
  * THE SOFTWARE.
  */
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 
 /**************************************************************/
diff --git a/block/qcow.c b/block/qcow.c
index b239c82ae07f2816aa9d603858ef4bc2f287612a..d13bd400f0886c8c35611c5bee1a6c5802d824d2 100644
--- a/block/qcow.c
+++ b/block/qcow.c
@@ -22,10 +22,10 @@
  * THE SOFTWARE.
  */
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 #include <zlib.h>
-#include "aes.h"
+#include "block/aes.h"
 #include "migration.h"
 
 /**************************************************************/
diff --git a/block/qcow2-cache.c b/block/qcow2-cache.c
index 2d4322a8dd36547a3183aa013542aab12b39650f..2f3114ecc24fcd4de6737c81081ebe97bfe60bac 100644
--- a/block/qcow2-cache.c
+++ b/block/qcow2-cache.c
@@ -22,7 +22,7 @@
  * THE SOFTWARE.
  */
 
-#include "block_int.h"
+#include "block/block_int.h"
 #include "qemu-common.h"
 #include "qcow2.h"
 #include "trace.h"
diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c
index 468ef1be5675ad921a2454c3fe541deeeb3890ec..56fccf9487eee9270082ea8fa4576fb5aeff4c05 100644
--- a/block/qcow2-cluster.c
+++ b/block/qcow2-cluster.c
@@ -25,7 +25,7 @@
 #include <zlib.h>
 
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "block/qcow2.h"
 #include "trace.h"
 
diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c
index 96224d1af2b505d749da4bc258bb7c6b18e1edf0..6a95aa6c92da5b07e5ff1a9bb8aa32dd807f6d56 100644
--- a/block/qcow2-refcount.c
+++ b/block/qcow2-refcount.c
@@ -23,7 +23,7 @@
  */
 
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "block/qcow2.h"
 
 static int64_t alloc_clusters_noref(BlockDriverState *bs, int64_t size);
diff --git a/block/qcow2-snapshot.c b/block/qcow2-snapshot.c
index 4e7c93b8b3770ddfef6e12bf364b7b656330dfa9..eb8fcd55497ff6e5d11b038a01d6abf27b79bd56 100644
--- a/block/qcow2-snapshot.c
+++ b/block/qcow2-snapshot.c
@@ -23,7 +23,7 @@
  */
 
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "block/qcow2.h"
 
 typedef struct QEMU_PACKED QCowSnapshotHeader {
diff --git a/block/qcow2.c b/block/qcow2.c
index 217b4e422fe228379cacbbda9b70bc3fe5ddc91f..205d910a52d018ce7e502d9dd9cd8ecb62111dd9 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -22,10 +22,10 @@
  * THE SOFTWARE.
  */
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 #include <zlib.h>
-#include "aes.h"
+#include "block/aes.h"
 #include "block/qcow2.h"
 #include "qemu-error.h"
 #include "qapi/qmp/qerror.h"
diff --git a/block/qcow2.h b/block/qcow2.h
index a60fcb429a98d8129636b3060b7103031607015d..718b52bacad056093fafbc9275cf711238222f7d 100644
--- a/block/qcow2.h
+++ b/block/qcow2.h
@@ -25,8 +25,8 @@
 #ifndef BLOCK_QCOW2_H
 #define BLOCK_QCOW2_H
 
-#include "aes.h"
-#include "qemu-coroutine.h"
+#include "block/aes.h"
+#include "block/coroutine.h"
 
 //#define DEBUG_ALLOC
 //#define DEBUG_ALLOC2
diff --git a/block/qed.h b/block/qed.h
index a063bf70affdd319f92f4ef72bbd2d6a79874cb6..2b4ddedf31373c43712e5339a217599cc859abe6 100644
--- a/block/qed.h
+++ b/block/qed.h
@@ -15,7 +15,7 @@
 #ifndef BLOCK_QED_H
 #define BLOCK_QED_H
 
-#include "block_int.h"
+#include "block/block_int.h"
 
 /* The layout of a QED file is as follows:
  *
diff --git a/block/raw-posix.c b/block/raw-posix.c
index 48eff2fd831dd83c5a19a5b7393dbf00661ce740..4e7388526916c88bc722cdf54c69dc09acfc9646 100644
--- a/block/raw-posix.c
+++ b/block/raw-posix.c
@@ -24,10 +24,10 @@
 #include "qemu-common.h"
 #include "qemu-timer.h"
 #include "qemu-log.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 #include "trace.h"
-#include "thread-pool.h"
+#include "block/thread-pool.h"
 #include "iov.h"
 #include "raw-aio.h"
 
diff --git a/block/raw-win32.c b/block/raw-win32.c
index ce207a3109464a9e699259f7c7396ad6618ea058..9269fe84c09f3e8022e669bb75718994e96c0adb 100644
--- a/block/raw-win32.c
+++ b/block/raw-win32.c
@@ -23,11 +23,11 @@
  */
 #include "qemu-common.h"
 #include "qemu-timer.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 #include "raw-aio.h"
 #include "trace.h"
-#include "thread-pool.h"
+#include "block/thread-pool.h"
 #include "iov.h"
 #include <windows.h>
 #include <winioctl.h>
diff --git a/block/raw.c b/block/raw.c
index 253e949b8c57c03193fc98af01c3ac95a4314ed1..6aec93dadbfb6ff484ea3c19dad265156fb34961 100644
--- a/block/raw.c
+++ b/block/raw.c
@@ -1,6 +1,6 @@
 
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 
 static int raw_open(BlockDriverState *bs, int flags)
diff --git a/block/rbd.c b/block/rbd.c
index 737bab16cc1002d06abe88119adcc24a89fb3462..8def2f174caf0343d8ff6f39559256318af1dae2 100644
--- a/block/rbd.c
+++ b/block/rbd.c
@@ -15,7 +15,7 @@
 
 #include "qemu-common.h"
 #include "qemu-error.h"
-#include "block_int.h"
+#include "block/block_int.h"
 
 #include <rbd/librbd.h>
 
diff --git a/block/sheepdog.c b/block/sheepdog.c
index a48f58cfe88375fb8041d28922b4a0ec474b1d16..da70df2d00f46ffa39120683456e1201f0d5347f 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -15,7 +15,7 @@
 #include "qemu-common.h"
 #include "qemu-error.h"
 #include "qemu_socket.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "bitops.h"
 
 #define SD_PROTO_VER 0x01
diff --git a/block/stream.c b/block/stream.c
index 0dcd28603561a4cc9366aeb90d92fdb228cd7981..d6df06f35a1157a399ced8dc03a3ef319f19979f 100644
--- a/block/stream.c
+++ b/block/stream.c
@@ -12,8 +12,8 @@
  */
 
 #include "trace.h"
-#include "block_int.h"
-#include "blockjob.h"
+#include "block/block_int.h"
+#include "block/blockjob.h"
 #include "qemu/ratelimit.h"
 
 enum {
diff --git a/block/vdi.c b/block/vdi.c
index c8330b7eaeef7b2f3f4cf0fa84bf7fa61fe7b08f..dab9cac76e26d25b6a393c5d2b92e32a36153759 100644
--- a/block/vdi.c
+++ b/block/vdi.c
@@ -50,7 +50,7 @@
  */
 
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 #include "migration.h"
 
diff --git a/block/vmdk.c b/block/vmdk.c
index 51398c0c08e5ff7617c2b00cb88e9b85682346ea..68e50e1a3e692d6cf4cd4ed21bdcd92bc081ef27 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -24,7 +24,7 @@
  */
 
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 #include "migration.h"
 #include <zlib.h>
diff --git a/block/vpc.c b/block/vpc.c
index 566e9a3b372a7d92a09ea29a4cac3c6451c3165f..aabd71201c2ee5edd6f1cda1e984e3cebe8b3944 100644
--- a/block/vpc.c
+++ b/block/vpc.c
@@ -23,7 +23,7 @@
  * THE SOFTWARE.
  */
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 #include "migration.h"
 #if defined(CONFIG_UUID)
diff --git a/block/vvfat.c b/block/vvfat.c
index 59d3c5b8ac213513667b5b61eadb0328c138e7d0..fbabafca7605af609bd60eed17ef1b0a1936579f 100644
--- a/block/vvfat.c
+++ b/block/vvfat.c
@@ -25,7 +25,7 @@
 #include <sys/stat.h>
 #include <dirent.h>
 #include "qemu-common.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 #include "migration.h"
 
diff --git a/block/win32-aio.c b/block/win32-aio.c
index 4704ee06c2de126cebd6cb4e8d09cc3c9e585800..606e4d6925ece75234b1128f1dd42e6fbc05d691 100644
--- a/block/win32-aio.c
+++ b/block/win32-aio.c
@@ -23,10 +23,10 @@
  */
 #include "qemu-common.h"
 #include "qemu-timer.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "module.h"
 #include "qemu-common.h"
-#include "qemu-aio.h"
+#include "block/aio.h"
 #include "raw-aio.h"
 #include "event_notifier.h"
 #include <windows.h>
diff --git a/blockdev-nbd.c b/blockdev-nbd.c
index a194ecd392f43962248f61248f23cb9efb666f75..81aa1d34eff6c89f06f0d248210a62b747725f48 100644
--- a/blockdev-nbd.c
+++ b/blockdev-nbd.c
@@ -16,7 +16,7 @@
 #include "sysemu.h"
 #include "qmp-commands.h"
 #include "trace.h"
-#include "nbd.h"
+#include "block/nbd.h"
 #include "qemu_socket.h"
 
 static int server_fd = -1;
diff --git a/blockdev.c b/blockdev.c
index c85c6145776aaf4d8d1e67e32e1a8a5f26934edf..ff6b333f694231eb4e4c5226c0f694e4d4b3ea01 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -9,14 +9,14 @@
 
 #include "blockdev.h"
 #include "hw/block-common.h"
-#include "blockjob.h"
+#include "block/blockjob.h"
 #include "monitor.h"
 #include "qapi/qmp/qerror.h"
 #include "qemu-option.h"
 #include "qemu-config.h"
 #include "qapi/qmp/types.h"
 #include "sysemu.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "qmp-commands.h"
 #include "trace.h"
 #include "arch_init.h"
diff --git a/blockdev.h b/blockdev.h
index 6e36d9f2c280f07674f6dd8c6f81937d1b4c24cb..413486475847acb52422a4ccb5c8e004277535de 100644
--- a/blockdev.h
+++ b/blockdev.h
@@ -10,7 +10,7 @@
 #ifndef BLOCKDEV_H
 #define BLOCKDEV_H
 
-#include "block.h"
+#include "block/block.h"
 #include "qapi/error.h"
 #include "qemu-queue.h"
 
diff --git a/blockjob.c b/blockjob.c
index 8c0a286a77910f8ad34ec7b6c9b5cd627f975769..004480d714118fe2aa090199330b490a3fbb9265 100644
--- a/blockjob.c
+++ b/blockjob.c
@@ -27,11 +27,11 @@
 #include "qemu-common.h"
 #include "trace.h"
 #include "monitor.h"
-#include "block.h"
-#include "blockjob.h"
-#include "block_int.h"
+#include "block/block.h"
+#include "block/blockjob.h"
+#include "block/block_int.h"
 #include "qapi/qmp/qjson.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 #include "qmp-commands.h"
 #include "qemu-timer.h"
 
diff --git a/cmd.c b/cmd.c
index f40f09bbb76edf10781c2aec26b8f5ddb60e27eb..01a8c3a299b28a4252e64c75341161f196bfac54 100644
--- a/cmd.c
+++ b/cmd.c
@@ -24,7 +24,7 @@
 #include <getopt.h>
 
 #include "cmd.h"
-#include "qemu-aio.h"
+#include "block/aio.h"
 #include "main-loop.h"
 
 #define _(x)	x	/* not gettext support yet */
diff --git a/coroutine-gthread.c b/coroutine-gthread.c
index 30c24c94b873031f33635c0a06aae173e4ad004f..d3e5b991f77a329d2ef52527f7f5c37695af76d7 100644
--- a/coroutine-gthread.c
+++ b/coroutine-gthread.c
@@ -20,7 +20,7 @@
 
 #include <glib.h>
 #include "qemu-common.h"
-#include "qemu-coroutine-int.h"
+#include "block/coroutine_int.h"
 
 typedef struct {
     Coroutine base;
diff --git a/coroutine-sigaltstack.c b/coroutine-sigaltstack.c
index 39dbaa5da1392dd4466c46544478f6bf58218dfb..e37ebac9c449e6469d47234640b43a4f9e261e7c 100644
--- a/coroutine-sigaltstack.c
+++ b/coroutine-sigaltstack.c
@@ -31,7 +31,7 @@
 #include <pthread.h>
 #include <signal.h>
 #include "qemu-common.h"
-#include "qemu-coroutine-int.h"
+#include "block/coroutine_int.h"
 
 enum {
     /* Maximum free pool size prevents holding too many freed coroutines */
diff --git a/coroutine-ucontext.c b/coroutine-ucontext.c
index 784081ab18a7e7f0cbc7cfd10cfef7be27331402..2ed703a3ed7f510708c3fb80211132c76d065551 100644
--- a/coroutine-ucontext.c
+++ b/coroutine-ucontext.c
@@ -28,7 +28,7 @@
 #include <pthread.h>
 #include <ucontext.h>
 #include "qemu-common.h"
-#include "qemu-coroutine-int.h"
+#include "block/coroutine_int.h"
 
 #ifdef CONFIG_VALGRIND_H
 #include <valgrind/valgrind.h>
diff --git a/coroutine-win32.c b/coroutine-win32.c
index 4179609eecdda74263c5605366d69f21b8ceb814..edc1f72c1823416a05e48d5ee1c5361285214bf0 100644
--- a/coroutine-win32.c
+++ b/coroutine-win32.c
@@ -23,7 +23,7 @@
  */
 
 #include "qemu-common.h"
-#include "qemu-coroutine-int.h"
+#include "block/coroutine_int.h"
 
 typedef struct
 {
diff --git a/dma.h b/dma.h
index eedf878383837b1978952e6002c51eedca60b2f6..40280365ce921cf734ec1f0dae8b5192c7f7eba5 100644
--- a/dma.h
+++ b/dma.h
@@ -13,7 +13,7 @@
 #include <stdio.h>
 #include "memory.h"
 #include "hw/hw.h"
-#include "block.h"
+#include "block/block.h"
 #include "kvm.h"
 
 typedef struct DMAContext DMAContext;
diff --git a/hw/9pfs/codir.c b/hw/9pfs/codir.c
index 3d188284ba38b0b8e789091189777470bdb587a7..cd137330b906cc58f3207e69e4ab777ed3e0a2c3 100644
--- a/hw/9pfs/codir.c
+++ b/hw/9pfs/codir.c
@@ -14,7 +14,7 @@
 
 #include "fsdev/qemu-fsdev.h"
 #include "qemu-thread.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 #include "virtio-9p-coth.h"
 
 int v9fs_co_readdir_r(V9fsPDU *pdu, V9fsFidState *fidp, struct dirent *dent,
diff --git a/hw/9pfs/cofile.c b/hw/9pfs/cofile.c
index 9345aaeb2efbe0b3cd88a5f58f5707c64419245f..6d6dac7abf195a42f07fdb0469837c5589d2b3b7 100644
--- a/hw/9pfs/cofile.c
+++ b/hw/9pfs/cofile.c
@@ -14,7 +14,7 @@
 
 #include "fsdev/qemu-fsdev.h"
 #include "qemu-thread.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 #include "virtio-9p-coth.h"
 
 int v9fs_co_st_gen(V9fsPDU *pdu, V9fsPath *path, mode_t st_mode,
diff --git a/hw/9pfs/cofs.c b/hw/9pfs/cofs.c
index 83f125bd47c38be858c8666bc3541d4423c57a15..4b9ba30157a37701dc657f7acb6b5ed234ee4a7d 100644
--- a/hw/9pfs/cofs.c
+++ b/hw/9pfs/cofs.c
@@ -14,7 +14,7 @@
 
 #include "fsdev/qemu-fsdev.h"
 #include "qemu-thread.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 #include "virtio-9p-coth.h"
 
 int v9fs_co_readlink(V9fsPDU *pdu, V9fsPath *path, V9fsString *buf)
diff --git a/hw/9pfs/coxattr.c b/hw/9pfs/coxattr.c
index 8a482287023438d9fbc5af212abe0e70148cfdea..08365a697e4fc7bad00de983898ec1da6acf1b5b 100644
--- a/hw/9pfs/coxattr.c
+++ b/hw/9pfs/coxattr.c
@@ -14,7 +14,7 @@
 
 #include "fsdev/qemu-fsdev.h"
 #include "qemu-thread.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 #include "virtio-9p-coth.h"
 
 int v9fs_co_llistxattr(V9fsPDU *pdu, V9fsPath *path, void *value, size_t size)
diff --git a/hw/9pfs/virtio-9p-coth.c b/hw/9pfs/virtio-9p-coth.c
index 9368df7610a67e4c258ca7bfcfb6a1fbd74a31ef..958725e5cc543fd40c526c528b740005d897f0bc 100644
--- a/hw/9pfs/virtio-9p-coth.c
+++ b/hw/9pfs/virtio-9p-coth.c
@@ -14,7 +14,7 @@
 
 #include "fsdev/qemu-fsdev.h"
 #include "qemu-thread.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 #include "virtio-9p-coth.h"
 
 /* v9fs glib thread pool */
diff --git a/hw/9pfs/virtio-9p-coth.h b/hw/9pfs/virtio-9p-coth.h
index c31c96578bdb7e0956aab5398fd901377f2ce54f..8c48a16c10bae1c404e870d9063e8eadc6bb4f11 100644
--- a/hw/9pfs/virtio-9p-coth.h
+++ b/hw/9pfs/virtio-9p-coth.h
@@ -16,7 +16,7 @@
 #define _QEMU_VIRTIO_9P_COTH_H
 
 #include "qemu-thread.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 #include "virtio-9p.h"
 #include <glib.h>
 
diff --git a/hw/9pfs/virtio-9p.h b/hw/9pfs/virtio-9p.h
index 579794404b7a1fda1d0d87d599bb58633bed3ecf..2c0c3baad409a404bd6191adeadc4035c267206f 100644
--- a/hw/9pfs/virtio-9p.h
+++ b/hw/9pfs/virtio-9p.h
@@ -10,7 +10,7 @@
 #include "fsdev/file-op-9p.h"
 #include "fsdev/virtio-9p-marshal.h"
 #include "qemu-thread.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 
 
 /* The feature bitmap for virtio 9P */
diff --git a/hw/hd-geometry.c b/hw/hd-geometry.c
index 1cdb9fb75370b6270c6cd1a13d5a1a355988cc00..c30514364f162262ef5a19b31b47e66b0bb34595 100644
--- a/hw/hd-geometry.c
+++ b/hw/hd-geometry.c
@@ -30,7 +30,7 @@
  * THE SOFTWARE.
  */
 
-#include "block.h"
+#include "block/block.h"
 #include "hw/block-common.h"
 #include "trace.h"
 
diff --git a/hw/hw.h b/hw/hw.h
index f530f6f41a724c3e5f12c64e31281f59a9256ccc..003d974866115a95232efe3ffc7b312a9e7420cf 100644
--- a/hw/hw.h
+++ b/hw/hw.h
@@ -10,7 +10,7 @@
 
 #include "ioport.h"
 #include "irq.h"
-#include "qemu-aio.h"
+#include "block/aio.h"
 #include "qemu-file.h"
 #include "vmstate.h"
 #include "qemu-log.h"
diff --git a/hw/ide/cmd646.c b/hw/ide/cmd646.c
index 88210eabc8adbcf9c765241fcd9ec1b2b7fa7b3f..f6d15b9f2a588ce5ff5c5e9e2292d8817677bf1d 100644
--- a/hw/ide/cmd646.c
+++ b/hw/ide/cmd646.c
@@ -26,7 +26,7 @@
 #include <hw/pc.h>
 #include <hw/pci/pci.h>
 #include <hw/isa.h>
-#include "block.h"
+#include "block/block.h"
 #include "sysemu.h"
 #include "dma.h"
 
diff --git a/hw/ide/ich.c b/hw/ide/ich.c
index 8e1a48e257a5177cda9281907696367a53afe8df..3457b98cc1708d58bd44f2674fe0a10c522ccb8c 100644
--- a/hw/ide/ich.c
+++ b/hw/ide/ich.c
@@ -65,7 +65,7 @@
 #include <hw/pc.h>
 #include <hw/pci/pci.h>
 #include <hw/isa.h>
-#include "block.h"
+#include "block/block.h"
 #include "dma.h"
 
 #include <hw/ide/pci.h>
diff --git a/hw/ide/isa.c b/hw/ide/isa.c
index 8ab2718eeaebf837b1a24a6b784b8a8fb7d27398..39df87c608c08e8fbe88eb8679d010fede29be8b 100644
--- a/hw/ide/isa.c
+++ b/hw/ide/isa.c
@@ -25,7 +25,7 @@
 #include <hw/hw.h>
 #include <hw/pc.h>
 #include <hw/isa.h>
-#include "block.h"
+#include "block/block.h"
 #include "dma.h"
 
 #include <hw/ide/internal.h>
diff --git a/hw/ide/macio.c b/hw/ide/macio.c
index d2edcc08500f5e4208a8d40a293c7d6cac2731ea..87cbb0c31e46a409a6986d0c545b85675849cdf3 100644
--- a/hw/ide/macio.c
+++ b/hw/ide/macio.c
@@ -25,7 +25,7 @@
 #include <hw/hw.h>
 #include <hw/ppc_mac.h>
 #include <hw/mac_dbdma.h>
-#include "block.h"
+#include "block/block.h"
 #include "dma.h"
 
 #include <hw/ide/internal.h>
diff --git a/hw/ide/microdrive.c b/hw/ide/microdrive.c
index 9eee5b50ba9c6136e75ca6102de0a36ade58c2b7..6cce5230c59a9bb8943ffae24a03840ff94e0634 100644
--- a/hw/ide/microdrive.c
+++ b/hw/ide/microdrive.c
@@ -25,7 +25,7 @@
 #include <hw/hw.h>
 #include <hw/pc.h>
 #include <hw/pcmcia.h>
-#include "block.h"
+#include "block/block.h"
 #include "dma.h"
 
 #include <hw/ide/internal.h>
diff --git a/hw/ide/mmio.c b/hw/ide/mmio.c
index bcb26c8b64b7184d14b7cb99e99cddb5096ea370..40443513be2d37e99641f49a616f992e2e3b7f11 100644
--- a/hw/ide/mmio.c
+++ b/hw/ide/mmio.c
@@ -23,7 +23,7 @@
  * THE SOFTWARE.
  */
 #include <hw/hw.h>
-#include "block.h"
+#include "block/block.h"
 #include "dma.h"
 
 #include <hw/ide/internal.h>
diff --git a/hw/ide/pci.c b/hw/ide/pci.c
index 23a0e237fb0e8a99a381874500fb998244397146..8821d5cceb1096439d6f9fe4303269ce1ac17f63 100644
--- a/hw/ide/pci.c
+++ b/hw/ide/pci.c
@@ -26,7 +26,7 @@
 #include <hw/pc.h>
 #include <hw/pci/pci.h>
 #include <hw/isa.h>
-#include "block.h"
+#include "block/block.h"
 #include "dma.h"
 
 #include <hw/ide/pci.h>
diff --git a/hw/ide/via.c b/hw/ide/via.c
index 8b4a24e5c22939ff49679a0633fe07f8030119fd..880f61cc8e1482220002ec88d5f84e000068592a 100644
--- a/hw/ide/via.c
+++ b/hw/ide/via.c
@@ -27,7 +27,7 @@
 #include <hw/pc.h>
 #include <hw/pci/pci.h>
 #include <hw/isa.h>
-#include "block.h"
+#include "block/block.h"
 #include "sysemu.h"
 #include "dma.h"
 
diff --git a/hw/mips_fulong2e.c b/hw/mips_fulong2e.c
index bab96b27c1b0a24d8ae0c691e5122e73eef12234..b46f7fdcb1c7a76a20b2c06fec6e8e2a2ff2da65 100644
--- a/hw/mips_fulong2e.c
+++ b/hw/mips_fulong2e.c
@@ -25,7 +25,7 @@
 #include "net/net.h"
 #include "boards.h"
 #include "smbus.h"
-#include "block.h"
+#include "block/block.h"
 #include "flash.h"
 #include "mips.h"
 #include "mips_cpudevs.h"
diff --git a/hw/mips_malta.c b/hw/mips_malta.c
index 3f9f171385235aaafa00c51080616cc8d7d8494b..60f237987f9c49bc52f8e4b4ab4d5305b43b37ba 100644
--- a/hw/mips_malta.c
+++ b/hw/mips_malta.c
@@ -29,7 +29,7 @@
 #include "net/net.h"
 #include "boards.h"
 #include "smbus.h"
-#include "block.h"
+#include "block/block.h"
 #include "flash.h"
 #include "mips.h"
 #include "mips_cpudevs.h"
diff --git a/hw/musicpal.c b/hw/musicpal.c
index d16cd141a251028a6e69e1cb0193732585d6c27a..d7672e92a560d92309ff31fffce1e5e64b474817 100644
--- a/hw/musicpal.c
+++ b/hw/musicpal.c
@@ -18,7 +18,7 @@
 #include "serial.h"
 #include "qemu-timer.h"
 #include "ptimer.h"
-#include "block.h"
+#include "block/block.h"
 #include "flash.h"
 #include "ui/console.h"
 #include "i2c.h"
diff --git a/hw/pflash_cfi01.c b/hw/pflash_cfi01.c
index 7d040b508ac6e2332d3a22281d74a52003894f7e..a2f636083887cc395111ee706ca4ce8c1169e08c 100644
--- a/hw/pflash_cfi01.c
+++ b/hw/pflash_cfi01.c
@@ -38,7 +38,7 @@
 
 #include "hw.h"
 #include "flash.h"
-#include "block.h"
+#include "block/block.h"
 #include "qemu-timer.h"
 #include "exec-memory.h"
 #include "host-utils.h"
diff --git a/hw/pflash_cfi02.c b/hw/pflash_cfi02.c
index f918e36580f43865c4844278fc31faef103b82ae..beab67fc8724b0c053eec4044a865f0a8353c994 100644
--- a/hw/pflash_cfi02.c
+++ b/hw/pflash_cfi02.c
@@ -38,7 +38,7 @@
 #include "hw.h"
 #include "flash.h"
 #include "qemu-timer.h"
-#include "block.h"
+#include "block/block.h"
 #include "exec-memory.h"
 #include "host-utils.h"
 #include "sysbus.h"
diff --git a/hw/ppc405_boards.c b/hw/ppc405_boards.c
index 8dc693f050ebe40a3f3c941e3478a3ec71abe69a..b875e3b6154145134651869a87ce02b570de6ace 100644
--- a/hw/ppc405_boards.c
+++ b/hw/ppc405_boards.c
@@ -27,7 +27,7 @@
 #include "nvram.h"
 #include "flash.h"
 #include "sysemu.h"
-#include "block.h"
+#include "block/block.h"
 #include "boards.h"
 #include "qemu-log.h"
 #include "loader.h"
diff --git a/hw/s390-virtio-bus.c b/hw/s390-virtio-bus.c
index 169dd4683ddeef300cd8447497bfc3fc9e778bf6..f7e19392881eaf3d91944c7afcdc250ae3866302 100644
--- a/hw/s390-virtio-bus.c
+++ b/hw/s390-virtio-bus.c
@@ -18,7 +18,7 @@
  */
 
 #include "hw.h"
-#include "block.h"
+#include "block/block.h"
 #include "sysemu.h"
 #include "boards.h"
 #include "monitor.h"
diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c
index 8c724b942cc01be1556f517b070d0bc676ab8b7e..b732bccef83c2f85c9cf2116d981442dc5d81436 100644
--- a/hw/s390-virtio.c
+++ b/hw/s390-virtio.c
@@ -18,7 +18,7 @@
  */
 
 #include "hw.h"
-#include "block.h"
+#include "block/block.h"
 #include "blockdev.h"
 #include "sysemu.h"
 #include "net/net.h"
diff --git a/hw/scsi.h b/hw/scsi.h
index b8f73577d32b5ea5150bae74eb53285cecc24c72..24ed522722d6daa4a845b454ebc44a10677e9764 100644
--- a/hw/scsi.h
+++ b/hw/scsi.h
@@ -2,7 +2,7 @@
 #define QEMU_HW_SCSI_H
 
 #include "qdev.h"
-#include "block.h"
+#include "block/block.h"
 #include "hw/block-common.h"
 #include "sysemu.h"
 
diff --git a/hw/sd.c b/hw/sd.c
index 607edba9c82440baf373d1fe025055e971c23dc7..2e54eea98106dba9008f3180be3a52cc5f18cc8f 100644
--- a/hw/sd.c
+++ b/hw/sd.c
@@ -30,7 +30,7 @@
  */
 
 #include "hw.h"
-#include "block.h"
+#include "block/block.h"
 #include "sd.h"
 #include "bitmap.h"
 
diff --git a/hw/spitz.c b/hw/spitz.c
index d4575d20bf13b123e9b546f160611ffb749b19b0..1500161d44aab081ca36691e41cdcc26d0cf4714 100644
--- a/hw/spitz.c
+++ b/hw/spitz.c
@@ -22,7 +22,7 @@
 #include "devices.h"
 #include "sharpsl.h"
 #include "ui/console.h"
-#include "block.h"
+#include "block/block.h"
 #include "audio/audio.h"
 #include "boards.h"
 #include "blockdev.h"
diff --git a/hw/tosa.c b/hw/tosa.c
index 512278c241413556717caa64e14676fd3859b3e6..3991a909b512a4c7710a9e6c7642277bd9a0192c 100644
--- a/hw/tosa.c
+++ b/hw/tosa.c
@@ -17,7 +17,7 @@
 #include "devices.h"
 #include "sharpsl.h"
 #include "pcmcia.h"
-#include "block.h"
+#include "block/block.h"
 #include "boards.h"
 #include "i2c.h"
 #include "ssi.h"
diff --git a/aes.h b/include/block/aes.h
similarity index 100%
rename from aes.h
rename to include/block/aes.h
diff --git a/qemu-aio.h b/include/block/aio.h
similarity index 100%
rename from qemu-aio.h
rename to include/block/aio.h
diff --git a/block.h b/include/block/block.h
similarity index 99%
rename from block.h
rename to include/block/block.h
index 0b22892d61d6bb02dba2ec6fc9439adb7304887b..d49ce4dbc5ecc9376e98db4a7675b638d9307d64 100644
--- a/block.h
+++ b/include/block/block.h
@@ -1,10 +1,10 @@
 #ifndef BLOCK_H
 #define BLOCK_H
 
-#include "qemu-aio.h"
+#include "block/aio.h"
 #include "qemu-common.h"
 #include "qemu-option.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 #include "qapi/qmp/qobject.h"
 #include "qapi-types.h"
 
diff --git a/block_int.h b/include/block/block_int.h
similarity index 99%
rename from block_int.h
rename to include/block/block_int.h
index a748b6c571586bf6896bc55637d32852d40b04b9..d06de2637bd04edc895d25b67bb7d6cfa75deee9 100644
--- a/block_int.h
+++ b/include/block/block_int.h
@@ -24,10 +24,10 @@
 #ifndef BLOCK_INT_H
 #define BLOCK_INT_H
 
-#include "block.h"
+#include "block/block.h"
 #include "qemu-option.h"
 #include "qemu-queue.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 #include "qemu-timer.h"
 #include "qapi-types.h"
 #include "qapi/qmp/qerror.h"
diff --git a/blockjob.h b/include/block/blockjob.h
similarity index 99%
rename from blockjob.h
rename to include/block/blockjob.h
index 3792b73e524b639c950969281924288ede0660cb..c290d07bba008c494b9987a4e872385f1932439a 100644
--- a/blockjob.h
+++ b/include/block/blockjob.h
@@ -25,7 +25,7 @@
 #ifndef BLOCKJOB_H
 #define BLOCKJOB_H 1
 
-#include "block.h"
+#include "block/block.h"
 
 /**
  * BlockJobType:
diff --git a/qemu-coroutine.h b/include/block/coroutine.h
similarity index 100%
rename from qemu-coroutine.h
rename to include/block/coroutine.h
diff --git a/qemu-coroutine-int.h b/include/block/coroutine_int.h
similarity index 98%
rename from qemu-coroutine-int.h
rename to include/block/coroutine_int.h
index 0f1bd80a8da605bc54a8ee42b06e4dc78e009759..282a3ceda61ec65e1d6a1f6346e22f8258c8abb2 100644
--- a/qemu-coroutine-int.h
+++ b/include/block/coroutine_int.h
@@ -26,7 +26,7 @@
 #define QEMU_COROUTINE_INT_H
 
 #include "qemu-queue.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 
 typedef enum {
     COROUTINE_YIELD = 1,
diff --git a/nbd.h b/include/block/nbd.h
similarity index 100%
rename from nbd.h
rename to include/block/nbd.h
diff --git a/thread-pool.h b/include/block/thread-pool.h
similarity index 93%
rename from thread-pool.h
rename to include/block/thread-pool.h
index 378a4ac9f94d7cb7f31225410de803dd2eb30f9d..a87b28708103e27a5d5550fdedb5396c7ec7ec71 100644
--- a/thread-pool.h
+++ b/include/block/thread-pool.h
@@ -21,8 +21,8 @@
 #include "qemu-common.h"
 #include "qemu-queue.h"
 #include "qemu-thread.h"
-#include "qemu-coroutine.h"
-#include "block_int.h"
+#include "block/coroutine.h"
+#include "block/block_int.h"
 
 typedef int ThreadPoolFunc(void *opaque);
 
diff --git a/iohandler.c b/iohandler.c
index 258f42d8d215f1387b41e21e81f71ca9fcee6817..cf8276dffc4f545482b2db114444e4a86b3c6b57 100644
--- a/iohandler.c
+++ b/iohandler.c
@@ -25,7 +25,7 @@
 #include "config-host.h"
 #include "qemu-common.h"
 #include "qemu-queue.h"
-#include "qemu-aio.h"
+#include "block/aio.h"
 #include "main-loop.h"
 
 #ifndef _WIN32
diff --git a/main-loop.c b/main-loop.c
index 7dba6f6e3511a678502fb232f6f88762ee2d9724..f9006118ad5c6c2fa6323ac768821a17e25b74d7 100644
--- a/main-loop.c
+++ b/main-loop.c
@@ -26,7 +26,7 @@
 #include "qemu-timer.h"
 #include "slirp/slirp.h"
 #include "main-loop.h"
-#include "qemu-aio.h"
+#include "block/aio.h"
 
 #ifndef _WIN32
 
diff --git a/main-loop.h b/main-loop.h
index 326c74269c5723723d1682d27e825d16bd943b54..e8059c3d0a72d4063ec5b2454684964eafd32348 100644
--- a/main-loop.h
+++ b/main-loop.h
@@ -25,7 +25,7 @@
 #ifndef QEMU_MAIN_LOOP_H
 #define QEMU_MAIN_LOOP_H 1
 
-#include "qemu-aio.h"
+#include "block/aio.h"
 
 #define SIG_IPI SIGUSR1
 
diff --git a/migration-exec.c b/migration-exec.c
index b4a3ca392110e6a6dca20d7d1c9dcea656106111..3e55b7792da3368ca834c331225acbd379777ac0 100644
--- a/migration-exec.c
+++ b/migration-exec.c
@@ -19,7 +19,7 @@
 #include "qemu_socket.h"
 #include "migration.h"
 #include "buffered_file.h"
-#include "block.h"
+#include "block/block.h"
 #include <sys/types.h>
 #include <sys/wait.h>
 
diff --git a/migration-fd.c b/migration-fd.c
index 6d4228791388fb410292500ed5225f951b059824..e86228823fead18d3391e3823f967eaa57aa7322 100644
--- a/migration-fd.c
+++ b/migration-fd.c
@@ -18,7 +18,7 @@
 #include "migration.h"
 #include "monitor.h"
 #include "buffered_file.h"
-#include "block.h"
+#include "block/block.h"
 #include "qemu_socket.h"
 
 //#define DEBUG_MIGRATION_FD
diff --git a/migration-tcp.c b/migration-tcp.c
index a9bb817d9912d961796462eb4342068647fb7d75..07f51f2aef0bcffbf191f6be71c2e46f38af78e3 100644
--- a/migration-tcp.c
+++ b/migration-tcp.c
@@ -17,7 +17,7 @@
 #include "qemu_socket.h"
 #include "migration.h"
 #include "buffered_file.h"
-#include "block.h"
+#include "block/block.h"
 
 //#define DEBUG_MIGRATION_TCP
 
diff --git a/migration-unix.c b/migration-unix.c
index e58e8bc15b2eaf57615f82b0b3bd97c080df3445..1b9c461083535deee577afa9b09d18b37e188904 100644
--- a/migration-unix.c
+++ b/migration-unix.c
@@ -17,7 +17,7 @@
 #include "qemu_socket.h"
 #include "migration.h"
 #include "buffered_file.h"
-#include "block.h"
+#include "block/block.h"
 
 //#define DEBUG_MIGRATION_UNIX
 
diff --git a/migration.c b/migration.c
index 73ce170ddf4ee742eaba092074617a3523c90cc5..1fce152548b0c17118a3fb4c1acca679969f6772 100644
--- a/migration.c
+++ b/migration.c
@@ -18,7 +18,7 @@
 #include "monitor.h"
 #include "buffered_file.h"
 #include "sysemu.h"
-#include "block.h"
+#include "block/block.h"
 #include "qemu_socket.h"
 #include "block-migration.h"
 #include "qmp-commands.h"
diff --git a/monitor.h b/monitor.h
index 7c29d9db34df16c7362d634e5f2739839a928671..9e96e83f5fbfc23f7f41784c8c46c4f3e1a4ba31 100644
--- a/monitor.h
+++ b/monitor.h
@@ -4,7 +4,7 @@
 #include "qemu-common.h"
 #include "qapi/qmp/qerror.h"
 #include "qapi/qmp/qdict.h"
-#include "block.h"
+#include "block/block.h"
 #include "readline.h"
 
 extern Monitor *cur_mon;
diff --git a/nbd.c b/nbd.c
index 01976e8e33938668f778ffd7f5b3da441dd170ce..04ff0a1d44cf273a1920a5e614e94fbc517bb1a9 100644
--- a/nbd.c
+++ b/nbd.c
@@ -16,10 +16,10 @@
  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "nbd.h"
-#include "block.h"
+#include "block/nbd.h"
+#include "block/block.h"
 
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 
 #include <errno.h>
 #include <string.h>
diff --git a/qemu-char.h b/qemu-char.h
index 3e230a13195b274d87d5217ef64d460331c6ae4f..5ff1b2ba9162a8cb7e7749d354715c7cec59c167 100644
--- a/qemu-char.h
+++ b/qemu-char.h
@@ -5,7 +5,7 @@
 #include "qemu-queue.h"
 #include "qemu-option.h"
 #include "qemu-config.h"
-#include "qemu-aio.h"
+#include "block/aio.h"
 #include "qapi/qmp/qobject.h"
 #include "qapi/qmp/qstring.h"
 #include "main-loop.h"
diff --git a/qemu-coroutine-io.c b/qemu-coroutine-io.c
index 57349650031dd902e83a463df7be80e6cf8abd1a..5fae9c7d47207555b4831e8a884d787d1373602a 100644
--- a/qemu-coroutine-io.c
+++ b/qemu-coroutine-io.c
@@ -24,7 +24,7 @@
  */
 #include "qemu-common.h"
 #include "qemu_socket.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 #include "iov.h"
 
 ssize_t coroutine_fn
diff --git a/qemu-coroutine-lock.c b/qemu-coroutine-lock.c
index 9dda3f86c9bfa43b21d7af8ca04db91f6ce74528..c3939ac6efc7189320ba38183d12776fc4766dae 100644
--- a/qemu-coroutine-lock.c
+++ b/qemu-coroutine-lock.c
@@ -23,10 +23,10 @@
  */
 
 #include "qemu-common.h"
-#include "qemu-coroutine.h"
-#include "qemu-coroutine-int.h"
+#include "block/coroutine.h"
+#include "block/coroutine_int.h"
 #include "qemu-queue.h"
-#include "qemu-aio.h"
+#include "block/aio.h"
 #include "trace.h"
 
 static QTAILQ_HEAD(, Coroutine) unlock_bh_queue =
diff --git a/qemu-coroutine-sleep.c b/qemu-coroutine-sleep.c
index d7083ee41a4534fc574456967060bb03b4943444..26e6dac2eba470df3188bc1ec57667ae4dda33bf 100644
--- a/qemu-coroutine-sleep.c
+++ b/qemu-coroutine-sleep.c
@@ -11,7 +11,7 @@
  *
  */
 
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 #include "qemu-timer.h"
 
 typedef struct CoSleepCB {
diff --git a/qemu-coroutine.c b/qemu-coroutine.c
index 600be2643c7cf0efa59fdd7ef1a4266eade30d8e..0f6e2685749584e0a52dd25e23d5207c84f03e61 100644
--- a/qemu-coroutine.c
+++ b/qemu-coroutine.c
@@ -14,8 +14,8 @@
 
 #include "trace.h"
 #include "qemu-common.h"
-#include "qemu-coroutine.h"
-#include "qemu-coroutine-int.h"
+#include "block/coroutine.h"
+#include "block/coroutine_int.h"
 
 Coroutine *qemu_coroutine_create(CoroutineEntry *entry)
 {
diff --git a/qemu-img.c b/qemu-img.c
index a13bc788cf6e6b1bc7b9c430ece29e049a8f638b..2e5ca5c96459dfc91dd7ae78e495b62419ce8226 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -29,7 +29,7 @@
 #include "qemu-error.h"
 #include "osdep.h"
 #include "sysemu.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include <getopt.h>
 #include <stdio.h>
 
diff --git a/qemu-io.c b/qemu-io.c
index 163777330263b4d263052db98d33f0f4b3d8c1ed..e0e47423d71b10636de095287e8e5b849af6a718 100644
--- a/qemu-io.c
+++ b/qemu-io.c
@@ -16,7 +16,7 @@
 
 #include "qemu-common.h"
 #include "main-loop.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "cmd.h"
 #include "trace/control.h"
 
diff --git a/qemu-nbd.c b/qemu-nbd.c
index 80f08d8464749a01c62b6798f6ee951df3445ca6..0a6091b6a8b6bd089291da440ac44c49ef7c7de2 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -17,8 +17,8 @@
  */
 
 #include "qemu-common.h"
-#include "block.h"
-#include "nbd.h"
+#include "block/block.h"
+#include "block/nbd.h"
 
 #include <stdarg.h>
 #include <stdio.h>
diff --git a/tests/test-aio.c b/tests/test-aio.c
index a8a4f0c6a5ef6cf4654e485c3d535c6a1aa85cc7..e4ebef76b95241268e135de1019dc9d2aa0b57e9 100644
--- a/tests/test-aio.c
+++ b/tests/test-aio.c
@@ -11,7 +11,7 @@
  */
 
 #include <glib.h>
-#include "qemu-aio.h"
+#include "block/aio.h"
 
 AioContext *ctx;
 
diff --git a/tests/test-coroutine.c b/tests/test-coroutine.c
index e5d14eb696b5c7ab9c23ab47510514684f388baa..4c6cc81fb98da864f9c101735cd0fb2709ba20bf 100644
--- a/tests/test-coroutine.c
+++ b/tests/test-coroutine.c
@@ -12,7 +12,7 @@
  */
 
 #include <glib.h>
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 
 /*
  * Check that qemu_in_coroutine() works
diff --git a/tests/test-thread-pool.c b/tests/test-thread-pool.c
index ea8e676b0ca00ad2a7a15429fe665f401514893f..9998e031f28c99879c808e27cc5434600419b5b2 100644
--- a/tests/test-thread-pool.c
+++ b/tests/test-thread-pool.c
@@ -1,8 +1,8 @@
 #include <glib.h>
 #include "qemu-common.h"
-#include "qemu-aio.h"
-#include "thread-pool.h"
-#include "block.h"
+#include "block/aio.h"
+#include "block/thread-pool.h"
+#include "block/block.h"
 
 static int active;
 
diff --git a/thread-pool.c b/thread-pool.c
index 204f70b7b55f639f3e117c98795536b6b9595cf6..4c73a7db977eaa22207f02bd1e6e4ba22d62422a 100644
--- a/thread-pool.c
+++ b/thread-pool.c
@@ -18,11 +18,11 @@
 #include "qemu-queue.h"
 #include "qemu-thread.h"
 #include "osdep.h"
-#include "qemu-coroutine.h"
+#include "block/coroutine.h"
 #include "trace.h"
-#include "block_int.h"
+#include "block/block_int.h"
 #include "event_notifier.h"
-#include "thread-pool.h"
+#include "block/thread-pool.h"
 
 static void do_spawn_thread(void);