[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
mount syscall
From: |
John Darrington |
Subject: |
mount syscall |
Date: |
Wed, 16 Nov 2016 22:06:01 +0100 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Tue, Nov 15, 2016 at 11:46:01AM +0100, Ludovic Court??s wrote:
John Darrington <address@hidden> skribis:
> On Mon, Nov 14, 2016 at 10:48:18AM +0100, Ludovic Court??s wrote:
>
> The ???mount??? system call; see (gnu build file-systems).
>
> I confess, I have not really thought about this before. But supposing
somebody has in their /etc/config.scm:
>
> (file-systems
> (cons*
> (file-system
> (device "my-root")
> (title 'label)
> (mount-point "/")
> (type "ext4"))
> (file-system
> (device "fileserver.example.com:/home")
> (title 'device)
> (mount-point "/home")
> (type "nfs4"))
> %base-file-systems))
>
> Would the /home filesystem then get mounted on boot?
Maybe not. :-)
The man page for mount(2) says:
--8<---------------cut here---------------start------------->8--- Values
for the filesystemtype argument supported by the kernel are listed in
/proc/filesystems (e.g., "btrfs", "ext4", "jfs", "xfs", "vfat", "fuse",
"tmpfs", "cgroup", "proc", "mqueue", "nfs", "cifs", "iso9660"). Further
types may become available when the appropriate modules are loaded.
--8<---------------cut here---------------end--------------->8---
I don???t know what happens with NFS, you???ll have to tell us.
The answer seems to be that it would fail unless we patch our mount syscall
wrapper with something like:
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index 2cee654..3435617 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -415,17 +415,33 @@ string. When FLAGS contains MS_REMOUNT, SOURCE and TYPE
are ignored. When
UPDATE-MTAB? is true, update /etc/mtab. Raise a 'system-error' exception on
error."
(let-values (((ret err)
- (proc (if source
- (string->pointer source)
- %null-pointer)
- (string->pointer target)
- (if type
- (string->pointer type)
- %null-pointer)
- flags
- (if options
- (string->pointer options)
- %null-pointer))))
+ (let ((xoptions
+ (cond
+ ((string-match "^nfs.*" type)
+ (let* ((hosts (string-split source #\:))
+ (aa (car (getaddrinfo (car hosts) #f)))
+ (sa (addrinfo:addr aa))
+ (inet-addr (inet-ntop (sockaddr:fam sa)
+ (sockaddr:addr sa))))
+ (string-append "addr="
+ inet-addr
+ (if options
+ (string-append "," options)
+ ""))))
+ (else
+ options))))
+ (proc
+ (if source
+ (string->pointer source)
+ %null-pointer)
+ (string->pointer target)
+ (if type
+ (string->pointer type)
+ %null-pointer)
+ flags
+ (if xoptions
+ (string->pointer xoptions)
+ %null-pointer)))))
(unless (zero? ret)
(throw 'system-error "mount" "mount ~S on ~S: ~A"
(list source target (strerror err))
WDYT?
--
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.
signature.asc
Description: Digital signature
- Re: [PATCH 1/4] gnu: Separate util-linux into three packages., (continued)
- Re: [PATCH 1/4] gnu: Separate util-linux into three packages., Ludovic Courtès, 2016/11/12
- Re: [PATCH 1/4] gnu: Separate util-linux into three packages., John Darrington, 2016/11/12
- Re: [PATCH 1/4] gnu: Separate util-linux into three packages., John Darrington, 2016/11/12
- Re: [PATCH 1/4] gnu: Separate util-linux into three packages., Ludovic Courtès, 2016/11/12
- Re: [PATCH 1/4] gnu: Separate util-linux into three packages., John Darrington, 2016/11/13
- Re: [PATCH 1/4] gnu: Separate util-linux into three packages., Ludovic Courtès, 2016/11/13
- Re: [PATCH 1/4] gnu: Separate util-linux into three packages., John Darrington, 2016/11/13
- Re: [PATCH 1/4] gnu: Separate util-linux into three packages., Ludovic Courtès, 2016/11/14
- Re: [PATCH 1/4] gnu: Separate util-linux into three packages., John Darrington, 2016/11/14
- Re: [PATCH 1/4] gnu: Separate util-linux into three packages., Ludovic Courtès, 2016/11/15
- mount syscall,
John Darrington <=
- Re: mount syscall, Ludovic Courtès, 2016/11/17
- [PATCH] gnu: Allow nfs filesystems to be automatically mounted., John Darrington, 2016/11/22
- Re: [PATCH] gnu: Allow nfs filesystems to be automatically mounted., Ludovic Courtès, 2016/11/23
- Re: [PATCH] gnu: Allow nfs filesystems to be automatically mounted., John Darrington, 2016/11/23
- Re: [PATCH] gnu: Allow nfs filesystems to be automatically mounted., Ludovic Courtès, 2016/11/24
- [PATCH] gnu: Allow nfs file systems to be automatically mounted., John Darrington, 2016/11/26
- Re: [PATCH] gnu: Allow nfs file systems to be automatically mounted., Ludovic Courtès, 2016/11/26
- Re: [PATCH] gnu: Allow nfs file systems to be automatically mounted., John Darrington, 2016/11/26
- Re: [PATCH] gnu: Allow nfs file systems to be automatically mounted., Ludovic Courtès, 2016/11/28
- Re: [PATCH] gnu: Allow nfs file systems to be automatically mounted., John Darrington, 2016/11/28