~ruther/guix-local

1d77413c5698e7e013740f6391395bdff07969a0 — Maxim Cournoyer 5 months ago 8cdc710
services/base: Only remount read-write if needed in run-with-writable-store.

* gnu/services/base.scm (run-with-writable-store): Make it a no-op when
the store is already writable (useful for testing).

Change-Id: If598638e9d3eeac242c265cba77f27e4a15f8d9b
1 files changed, 2 insertions(+), 3 deletions(-)

M gnu/services/base.scm
M gnu/services/base.scm => gnu/services/base.scm +2 -3
@@ 1939,10 1939,9 @@ read-only via %IMMUTABLE-STORE (this wrapper must run as root)."
                      (define (ensure-writable-store store)
                        ;; Create a new mount namespace and remount STORE with
                        ;; write permissions if it's read-only.
                        (unshare CLONE_NEWNS)
                        (let ((fs (statfs store)))
                          (unless (zero? (logand (file-system-mount-flags fs)
                                                 ST_RDONLY))
                          (when (logand (file-system-mount-flags fs) ST_RDONLY)
                            (unshare CLONE_NEWNS)
                            (mount store store "none"
                                   (logior MS_BIND MS_REMOUNT)))))