[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
58/68: installer: parted: Do not call BLKRRPART on loop devices.
From: |
guix-commits |
Subject: |
58/68: installer: parted: Do not call BLKRRPART on loop devices. |
Date: |
Thu, 17 Jan 2019 08:05:20 -0500 (EST) |
civodul pushed a commit to branch master
in repository guix.
commit f297c213a1b8a364f60c1de825761f1d9ad7eb5e
Author: Mathieu Othacehe <address@hidden>
Date: Tue Jan 1 19:23:21 2019 +0100
installer: parted: Do not call BLKRRPART on loop devices.
* gnu/installer/parted.scm (with-delay-device-in-use?): Return immediately
if
the file-name passed as argument designates a loop device.
---
gnu/installer/parted.scm | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index ea62d6a..40054c0 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Mathieu Othacehe <address@hidden>
+;;; Copyright © 2018, 2019 Mathieu Othacehe <address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -31,6 +31,7 @@
#:use-module (guix i18n)
#:use-module (parted)
#:use-module (ice-9 match)
+ #:use-module (ice-9 regex)
#:use-module (rnrs io ports)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
@@ -339,12 +340,14 @@ PARTED-OBJECT field equals PARTITION, return #f if not
found."
(define (with-delay-device-in-use? file-name)
"Call DEVICE-IN-USE? with a few retries, as the first re-read will often
fail. See rereadpt function in wipefs.c of util-linux for an explanation."
- (let loop ((try 4))
- (usleep 250000)
- (let ((in-use? (device-in-use? file-name)))
- (if (and in-use? (> try 0))
- (loop (- try 1))
- in-use?))))
+ ;; Kernel always return EINVAL for BLKRRPART on loopdevices.
+ (and (not (string-match "/dev/loop*" file-name))
+ (let loop ((try 4))
+ (usleep 250000)
+ (let ((in-use? (device-in-use? file-name)))
+ (if (and in-use? (> try 0))
+ (loop (- try 1))
+ in-use?)))))
(define* (force-device-sync device)
"Force a flushing of the given DEVICE."
- 42/68: installer: keymap: Fix keymap selection of layouts with not variant., (continued)
- 42/68: installer: keymap: Fix keymap selection of layouts with not variant., guix-commits, 2019/01/17
- 46/68: installer: Make exit button optional for run-file-textbox-page., guix-commits, 2019/01/17
- 48/68: installer: partition: Precise when using Manual/Guided partionment., guix-commits, 2019/01/17
- 61/68: installer: Remove debug popup., guix-commits, 2019/01/17
- 56/68: installer: Various renamings., guix-commits, 2019/01/17
- 52/68: installer: partionment: Add encryption support., guix-commits, 2019/01/17
- 27/68: installer: Add new pages., guix-commits, 2019/01/17
- 57/68: installer: Various renamins follow-up., guix-commits, 2019/01/17
- 44/68: installer: partition: Differenciate Back button from Exit button., guix-commits, 2019/01/17
- 28/68: installer: Redirect to TTY3 root shell for unguided install., guix-commits, 2019/01/17
- 58/68: installer: parted: Do not call BLKRRPART on loop devices.,
guix-commits <=
- 53/68: installer: Clear screen upon exit., guix-commits, 2019/01/17
- 49/68: installer: menu: Fix typo., guix-commits, 2019/01/17
- 43/68: installer: network: Do not show an empty technology list., guix-commits, 2019/01/17
- 50/68: installer: partition: Fix swaping and use syscalls., guix-commits, 2019/01/17
- 51/68: installer: partition: Fix typo., guix-commits, 2019/01/17
- 55/68: installer: parted: Use read-luks-partition-uuid instead of find-partition-by-luks-uuid., guix-commits, 2019/01/17
- 30/68: installer: Fix comments., guix-commits, 2019/01/17
- 59/68: installer: Rename "Ok" buttons to "OK"., guix-commits, 2019/01/17
- 47/68: installer: Display an eventual backtrace in a page., guix-commits, 2019/01/17
- 26/68: installer: Add hostname., guix-commits, 2019/01/17