file-systems: Do not truncate mount points that already exist.

Reported by David Thompson <dthompson2@worcester.edu>
at <https://lists.gnu.org/archive/html/guix-devel/2015-10/msg00284.html>.

* gnu/build/file-systems.scm (mount-file-system): When SOURCE matches
  'regular-file?', do not create MOUNT-POINT if it already exists.  This
  fixes a bug whereby we would be truncating MOUNT-POINT if it already
  existed.
This commit is contained in:
Ludovic Courtès 2015-10-17 11:57:38 +02:00
parent 0e3cc3116d
commit 78981bb9bd

View File

@ -348,7 +348,7 @@ run a file system check."
;; in the case of a bind mount, a regular file may be needed. ;; in the case of a bind mount, a regular file may be needed.
(if (and (= MS_BIND (logand flags MS_BIND)) (if (and (= MS_BIND (logand flags MS_BIND))
(regular-file? source)) (regular-file? source))
(begin (unless (file-exists? mount-point)
(mkdir-p (dirname mount-point)) (mkdir-p (dirname mount-point))
(call-with-output-file mount-point (const #t))) (call-with-output-file mount-point (const #t)))
(mkdir-p mount-point)) (mkdir-p mount-point))