[bug#39698] file-systems: Set default value of the check? field to #f for NFS
diff mbox series

Message ID 87v9nwklm6.fsf@gmail.com
State Accepted
Headers show
Series
  • [bug#39698] file-systems: Set default value of the check? field to #f for NFS
Related show

Checks

Context Check Description
cbaines/applying patch fail View Laminar job

Commit Message

Maxim Cournoyer Feb. 24, 2020, 4:15 p.m. UTC
Hi Ludovic!

Ludovic Courtès <ludo@gnu.org> writes:

> Hi,
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> --- a/gnu/system/file-systems.scm
>> +++ b/gnu/system/file-systems.scm
>> @@ -101,6 +101,8 @@
>>  (define-record-type* <file-system> %file-system
>>    make-file-system
>>    file-system?
>> +  this-file-system
>> +
>>    (device           file-system-device) ; string | <uuid> | <file-system-label>
>>    (mount-point      file-system-mount-point)      ; string
>>    (type             file-system-type)             ; string
>> @@ -113,7 +115,10 @@
>>    (needed-for-boot? %file-system-needed-for-boot? ; Boolean
>>                      (default #f))
>>    (check?           file-system-check?            ; Boolean
>> -                    (default #t))
>> +                    (thunked)
>> +                    (default (not (string-prefix-ci?
>> +                                   (file-system-type this-file-system)
>> +                                   "nfs"))))
>
> I’d rather avoid making ‘check?’ a thunked field (it adds a bit of
> overhead and breaks ‘equal?’.)
>
> Could we instead special-case NFS in (gnu build file-systems) such that
> checking is a no-op?
>
> Thanks,
> Ludo’.

This actually was the first implementation I'd done, before attempting
to go fancy with the thunked default value ;-).

You'll find it attached.

Thanks!
Maxim

Patch
diff mbox series

From ca38de33a7a31c7b96f7e920038b2fb6352160a8 Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Mon, 24 Feb 2020 11:08:42 -0500
Subject: [PATCH] build: file-systems: Skip check for NFS file systems

* gnu/build/file-systems.scm (mount-file-system): Do not call
`check-file-system' when the file system is of NFS type.
---
 gnu/build/file-systems.scm | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index cfa3898f83..76c143654d 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -5,6 +5,7 @@ 
 ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 David C. Trudgian <dave@trudgian.net>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -663,6 +664,7 @@  corresponds to the symbols listed in FLAGS."
                                 (string-append "," options)
                                 "")))))
   (let* ((type        (file-system-type fs))
+         (nfs? (string-prefix? "nfs" type))
          (fs-options (file-system-options fs))
          (options (if (null? fs-options)
                       #f
@@ -671,7 +673,7 @@  corresponds to the symbols listed in FLAGS."
          (mount-point (string-append root "/"
                                      (file-system-mount-point fs)))
          (flags       (mount-flags->bit-mask (file-system-flags fs))))
-    (when (file-system-check? fs)
+    (when (and (file-system-check? fs) (not nfs?))
       (check-file-system source type))
 
     ;; Create the mount point.  Most of the time this is a directory, but
@@ -683,11 +685,9 @@  corresponds to the symbols listed in FLAGS."
           (call-with-output-file mount-point (const #t)))
         (mkdir-p mount-point))
 
-    (cond
-     ((string-prefix? "nfs" type)
-      (mount-nfs source mount-point type flags options))
-     (else
-      (mount source mount-point type flags options)))
+    (if nfs?
+        (mount-nfs source mount-point type flags options)
+        (mount source mount-point type flags options))
 
     ;; For read-only bind mounts, an extra remount is needed, as per
     ;; <http://lwn.net/Articles/281157/>, which still applies to Linux 4.0.
-- 
2.25.0