소스 검색

Merge remote-tracking branch 'origin/pr/267'

* origin/pr/267:
  lvm: run blkdiscard before remove
Marek Marczykowski-Górecki 5 년 전
부모
커밋
d5bdb5d5e0
1개의 변경된 파일8개의 추가작업 그리고 1개의 파일을 삭제
  1. 8 1
      qubes/storage/lvm.py

+ 8 - 1
qubes/storage/lvm.py

@@ -806,9 +806,16 @@ def qubes_lvm_coro(cmd, log=logging.getLogger('qubes.storage.lvm')):
     ''' Call :program:`lvm` to execute an LVM operation
 
     Coroutine version of :py:func:`qubes_lvm`'''
-    cmd = _get_lvm_cmdline(cmd)
     environ = os.environ.copy()
     environ['LC_ALL'] = 'C.utf8'
+    if cmd[0] == "remove":
+        pre_cmd = ['blkdiscard', '/dev/'+cmd[1]]
+        p = yield from asyncio.create_subprocess_exec(*pre_cmd,
+            stdout=subprocess.DEVNULL,
+            stderr=subprocess.DEVNULL,
+            close_fds=True, env=environ)
+        _, _ = yield from p.communicate()
+    cmd = _get_lvm_cmdline(cmd)
     p = yield from asyncio.create_subprocess_exec(*cmd,
         stdout=subprocess.PIPE,
         stderr=subprocess.PIPE,