close all the block drivers before the qemu process exits

This patch calls the close handler of the block driver before the qemu
process exits.

This is necessary because the sheepdog block driver releases the lock
of VM images in the close handler.

Signed-off-by: MORITA Kazutaka <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
3 files changed
tree: 5982353ed7064ff6459e897ff3305b644f5580c5
  1. audio/
  2. block/
  3. bsd-user/
  4. darwin-user/
  5. default-configs/
  6. docs/
  7. fpu/
  8. fsdev/
  9. gdb-xml/
  10. hw/
  11. linux-user/
  12. net/
  13. pc-bios/
  14. QMP/
  15. roms/
  16. slirp/
  17. sysconfigs/
  18. target-alpha/
  19. target-arm/
  20. target-cris/
  21. target-i386/
  22. target-m68k/
  23. target-microblaze/
  24. target-mips/
  25. target-ppc/
  26. target-s390x/
  27. target-sh4/
  28. target-sparc/
  29. tcg/
  30. tests/
  31. .gitignore
  32. .gitmodules
  33. a.out.h
  34. acl.c
  35. acl.h
  36. aes.c
  37. aes.h
  38. aio.c
  39. alpha-dis.c
  40. alpha.ld
  41. arch_init.c
  42. arch_init.h
  43. arm-dis.c
  44. arm-semi.c
  45. arm.ld
  46. async.c
  47. balloon.c
  48. balloon.h
  49. block-migration.c
  50. block-migration.h
  51. block.c
  52. block.h
  53. block_int.h
  54. bswap.h
  55. bt-host.c
  56. bt-host.h
  57. bt-vhci.c
  58. buffered_file.c
  59. buffered_file.h
  60. cache-utils.c
  61. cache-utils.h
  62. Changelog
  63. check-qdict.c
  64. check-qfloat.c
  65. check-qint.c
  66. check-qjson.c
  67. check-qlist.c
  68. check-qstring.c
  69. cmd.c
  70. cmd.h
  71. cocoa.m
  72. CODING_STYLE
  73. config.h
  74. configure
  75. console.c
  76. console.h
  77. COPYING
  78. COPYING.LIB
  79. cpu-all.h
  80. cpu-common.h
  81. cpu-defs.h
  82. cpu-exec.c
  83. cpus.c
  84. cpus.h
  85. create_config
  86. cris-dis.c
  87. curses.c
  88. curses_keys.h
  89. cursor.c
  90. cursor_hidden.xpm
  91. cursor_left_ptr.xpm
  92. cutils.c
  93. d3des.c
  94. d3des.h
  95. def-helper.h
  96. device_tree.c
  97. device_tree.h
  98. dis-asm.h
  99. disas.c
  100. disas.h
  101. dma-helpers.c
  102. dma.h
  103. dyngen-exec.h
  104. elf.h
  105. envlist.c
  106. envlist.h
  107. exec-all.h
  108. exec.c
  109. feature_to_c.sh
  110. gdbstub.c
  111. gdbstub.h
  112. gen-icount.h
  113. host-utils.c
  114. host-utils.h
  115. hpet.h
  116. hppa-dis.c
  117. hppa.ld
  118. hxtool
  119. i386-dis.c
  120. i386.ld
  121. ia64-dis.c
  122. ia64.ld
  123. input.c
  124. ioport-user.c
  125. ioport.c
  126. ioport.h
  127. iov.c
  128. iov.h
  129. json-lexer.c
  130. json-lexer.h
  131. json-parser.c
  132. json-parser.h
  133. json-streamer.c
  134. json-streamer.h
  135. keymaps.c
  136. keymaps.h
  137. kvm-all.c
  138. kvm-stub.c
  139. kvm.h
  140. libfdt_env.h
  141. LICENSE
  142. linux-aio.c
  143. m68k-dis.c
  144. m68k-semi.c
  145. m68k.ld
  146. MAINTAINERS
  147. Makefile
  148. Makefile.dis
  149. Makefile.hw
  150. Makefile.objs
  151. Makefile.target
  152. Makefile.user
  153. microblaze-dis.c
  154. migration-exec.c
  155. migration-fd.c
  156. migration-tcp.c
  157. migration-unix.c
  158. migration.c
  159. migration.h
  160. mips-dis.c
  161. mips.ld
  162. module.c
  163. module.h
  164. monitor.c
  165. monitor.h
  166. nbd.c
  167. nbd.h
  168. net-checksum.c
  169. net.c
  170. net.h
  171. notify.c
  172. notify.h
  173. osdep.c
  174. osdep.h
  175. path.c
  176. pci-ids.txt
  177. poison.h
  178. posix-aio-compat.c
  179. ppc-dis.c
  180. ppc.ld
  181. ppc64.ld
  182. qbool.c
  183. qbool.h
  184. qdict-test-data.txt
  185. qdict.c
  186. qdict.h
  187. qemu-aio.h
  188. qemu-barrier.h
  189. qemu-binfmt-conf.sh
  190. qemu-char.c
  191. qemu-char.h
  192. qemu-common.h
  193. qemu-config.c
  194. qemu-config.h
  195. qemu-doc.texi
  196. qemu-error.c
  197. qemu-error.h
  198. qemu-img-cmds.hx
  199. qemu-img.c
  200. qemu-img.texi
  201. qemu-io.c
  202. qemu-lock.h
  203. qemu-log.h
  204. qemu-malloc.c
  205. qemu-monitor.hx
  206. qemu-nbd.c
  207. qemu-nbd.texi
  208. qemu-objects.h
  209. qemu-option.c
  210. qemu-option.h
  211. qemu-options.hx
  212. qemu-queue.h
  213. qemu-sockets.c
  214. qemu-tech.texi
  215. qemu-thread.c
  216. qemu-thread.h
  217. qemu-timer.c
  218. qemu-timer.h
  219. qemu-tool.c
  220. qemu-x509.h
  221. qemu.sasl
  222. qemu_socket.h
  223. qerror.c
  224. qerror.h
  225. qfloat.c
  226. qfloat.h
  227. qint.c
  228. qint.h
  229. qjson.c
  230. qjson.h
  231. qlist.c
  232. qlist.h
  233. qobject.h
  234. qstring.c
  235. qstring.h
  236. readline.c
  237. readline.h
  238. README
  239. rules.mak
  240. rwhandler.c
  241. rwhandler.h
  242. s390-dis.c
  243. s390.ld
  244. savevm.c
  245. sdl.c
  246. sdl_keysym.h
  247. sdl_zoom.c
  248. sdl_zoom.h
  249. sdl_zoom_template.h
  250. sh4-dis.c
  251. softmmu-semi.h
  252. softmmu_defs.h
  253. softmmu_exec.h
  254. softmmu_header.h
  255. softmmu_template.h
  256. sparc-dis.c
  257. sparc.ld
  258. sparc64.ld
  259. sysemu.h
  260. targphys.h
  261. tcg-runtime.c
  262. texi2pod.pl
  263. thunk.c
  264. thunk.h
  265. TODO
  266. translate-all.c
  267. uboot_image.h
  268. usb-bsd.c
  269. usb-linux.c
  270. usb-stub.c
  271. VERSION
  272. vgafont.h
  273. vl.c
  274. vnc-auth-sasl.c
  275. vnc-auth-sasl.h
  276. vnc-auth-vencrypt.c
  277. vnc-auth-vencrypt.h
  278. vnc-encoding-hextile.c
  279. vnc-encoding-tight.c
  280. vnc-encoding-tight.h
  281. vnc-encoding-zlib.c
  282. vnc-tls.c
  283. vnc-tls.h
  284. vnc.c
  285. vnc.h
  286. vnc_keysym.h
  287. vnchextile.h
  288. x86_64.ld
  289. x_keymap.c
  290. x_keymap.h