Thanks Jim. The json you provde works! I remember that I have tested similar formats. Maybe I've made some mistakes at that time. My final question is whether SPDK framework would handle inflight spdk_bdev_io data when a bdev is deleted? Or the 'destruct' of 'spdk_bdev_fn_table' would not be called until all inflight spdk_bdev_io data are completed? If so, is it OK that I change the 'module_link' of 'spdk_bdev_io' in my own bdev module? Thanks!