* [PATCH] gnu: file-system-shepherd-service: Use mount-file-system.
@ 2016-11-29 18:33 John Darrington
2016-11-30 12:51 ` Ludovic Courtès
0 siblings, 1 reply; 5+ messages in thread
From: John Darrington @ 2016-11-29 18:33 UTC (permalink / raw)
To: guix-devel; +Cc: John Darrington
* gnu/services/base.scm (file-system-shepherd-service): Use mount-file-system
instead of manually mounting the file system.
---
gnu/services/base.scm | 38 +++++++++-----------------------------
1 file changed, 9 insertions(+), 29 deletions(-)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index afbecdb..d909693 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -252,6 +252,8 @@ FILE-SYSTEM."
(device (file-system-device file-system))
(type (file-system-type file-system))
(title (file-system-title file-system))
+ (flags (file-system-flags file-system))
+ (options (file-system-options file-system))
(check? (file-system-check? file-system))
(create? (file-system-create-mount-point? file-system))
(dependencies (file-system-dependencies file-system)))
@@ -264,34 +266,12 @@ FILE-SYSTEM."
,@(map dependency->shepherd-service-name dependencies)))
(documentation "Check, mount, and unmount the given file system.")
(start #~(lambda args
- ;; FIXME: Use or factorize with 'mount-file-system'.
- (let ((device (canonicalize-device-spec #$device '#$title))
- (flags #$(mount-flags->bit-mask
- (file-system-flags file-system))))
- #$(if create?
- #~(mkdir-p #$target)
- #~#t)
- #$(if check?
- #~(begin
- ;; Make sure fsck.ext2 & co. can be found.
- (setenv "PATH"
- (string-append
- #$e2fsprogs "/sbin:"
- "/run/current-system/profile/sbin:"
- (getenv "PATH")))
- (check-file-system device #$type))
- #~#t)
-
- (mount device #$target #$type flags
- #$(file-system-options file-system))
-
- ;; For read-only bind mounts, an extra remount is
- ;; needed, as per <http://lwn.net/Articles/281157/>,
- ;; which still applies to Linux 4.0.
- (when (and (= MS_BIND (logand flags MS_BIND))
- (= MS_RDONLY (logand flags MS_RDONLY)))
- (mount device #$target #$type
- (logior MS_BIND MS_REMOUNT MS_RDONLY))))
+ #$(if create?
+ #~(mkdir-p #$target)
+ #~#t)
+ (mount-file-system
+ `(#$device #$title #$target #$type #$flags #$options
+ #$check?) #:root "/")
#t))
(stop #~(lambda args
;; Normally there are no processes left at this point, so
@@ -305,7 +285,7 @@ FILE-SYSTEM."
;; We need an additional module.
(modules `(((gnu build file-systems)
- #:select (check-file-system canonicalize-device-spec))
+ #:select (mount-file-system))
,@%default-modules)))))))
(define file-system-service-type
--
2.1.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] gnu: file-system-shepherd-service: Use mount-file-system.
2016-11-29 18:33 [PATCH] gnu: file-system-shepherd-service: Use mount-file-system John Darrington
@ 2016-11-30 12:51 ` Ludovic Courtès
2016-12-02 11:32 ` John Darrington
0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2016-11-30 12:51 UTC (permalink / raw)
To: John Darrington; +Cc: guix-devel
John Darrington <jmd@gnu.org> skribis:
> * gnu/services/base.scm (file-system-shepherd-service): Use mount-file-system
> instead of manually mounting the file system.
[...]
> + #$(if create?
> + #~(mkdir-p #$target)
> + #~#t)
#~#t is equivalent to #t.
> + (mount-file-system
> + `(#$device #$title #$target #$type #$flags #$options
> + #$check?) #:root "/")
> #t))
#t must be align with the parent of “(mount-file-system”.
If you confirmed that at least “make check-system TESTS=basic” passes,
fine with me.
Thank you!
Ludo’.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] gnu: file-system-shepherd-service: Use mount-file-system.
2016-11-30 12:51 ` Ludovic Courtès
@ 2016-12-02 11:32 ` John Darrington
2016-12-02 16:44 ` David Craven
2016-12-04 21:12 ` Ludovic Courtès
0 siblings, 2 replies; 5+ messages in thread
From: John Darrington @ 2016-12-02 11:32 UTC (permalink / raw)
To: Ludovic Court??s; +Cc: guix-devel, John Darrington
[-- Attachment #1: Type: text/plain, Size: 1189 bytes --]
On Wed, Nov 30, 2016 at 01:51:23PM +0100, Ludovic Court??s wrote:
John Darrington <jmd@gnu.org> skribis:
> * gnu/services/base.scm (file-system-shepherd-service): Use mount-file-system
> instead of manually mounting the file system.
[...]
> + #$(if create?
> + #~(mkdir-p #$target)
> + #~#t)
#~#t is equivalent to #t.
> + (mount-file-system
> + `(#$device #$title #$target #$type #$flags #$options
> + #$check?) #:root "/")
> #t))
#t must be align with the parent of ???(mount-file-system???.
If you confirmed that at least ???make check-system TESTS=basic??? passes,
fine with me.
Perhaps somebody who already has a copy of qemu in their store could check that
for me?
Currently I cannot run any system tests because of bug #25036
J'
--
Avoid eavesdropping. Send strong encrypted email.
PGP Public key ID: 1024D/2DE827B3
fingerprint = 8797 A26D 0854 2EAB 0285 A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] gnu: file-system-shepherd-service: Use mount-file-system.
2016-12-02 11:32 ` John Darrington
@ 2016-12-02 16:44 ` David Craven
2016-12-04 21:12 ` Ludovic Courtès
1 sibling, 0 replies; 5+ messages in thread
From: David Craven @ 2016-12-02 16:44 UTC (permalink / raw)
To: John Darrington; +Cc: guix-devel, John Darrington
> Perhaps somebody who already has a copy of qemu in their store could check that
> for me?
I tested it and pushed...
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] gnu: file-system-shepherd-service: Use mount-file-system.
2016-12-02 11:32 ` John Darrington
2016-12-02 16:44 ` David Craven
@ 2016-12-04 21:12 ` Ludovic Courtès
1 sibling, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2016-12-04 21:12 UTC (permalink / raw)
To: John Darrington; +Cc: guix-devel, John Darrington
John Darrington <john@darrington.wattle.id.au> skribis:
> On Wed, Nov 30, 2016 at 01:51:23PM +0100, Ludovic Court??s wrote:
> John Darrington <jmd@gnu.org> skribis:
>
> > * gnu/services/base.scm (file-system-shepherd-service): Use mount-file-system
> > instead of manually mounting the file system.
>
> [...]
>
> > + #$(if create?
> > + #~(mkdir-p #$target)
> > + #~#t)
>
> #~#t is equivalent to #t.
>
> > + (mount-file-system
> > + `(#$device #$title #$target #$type #$flags #$options
> > + #$check?) #:root "/")
> > #t))
>
> #t must be align with the parent of ???(mount-file-system???.
>
> If you confirmed that at least ???make check-system TESTS=basic??? passes,
> fine with me.
>
>
> Perhaps somebody who already has a copy of qemu in their store could check that
> for me?
hydra.gnu.org has a copy. :-)
Anyway, thanks for pushing this!
Ludo’.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-12-04 21:12 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-29 18:33 [PATCH] gnu: file-system-shepherd-service: Use mount-file-system John Darrington
2016-11-30 12:51 ` Ludovic Courtès
2016-12-02 11:32 ` John Darrington
2016-12-02 16:44 ` David Craven
2016-12-04 21:12 ` Ludovic Courtès
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).