Message ID | 559a95a6e1df354eb1415fa78163a8d3f009c61a.1717709187.git.ludo@gnu.org |
---|---|
State | New |
Headers | show |
Series | [bug#71402] services: Never throw when stopping mount-may-fail file systems. | expand |
Ludovic Courtès <ludo@gnu.org> skribis: > This is a followup to 7c27bd115b14afd142da7684cc349369965f9eab. > > * gnu/services/base.scm (file-system-shepherd-service): Catch > 'system-error from ‘umount’ call when FILE-SYSTEM is marked as > mount-may-fail. > > Change-Id: I2234f8da320b43089f4ee058cad8608ce9c078f8 I went ahead and pushed this as 7c8d38f91e7bd4aed106aacc78eb454789538c31. Ludo’.
diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 2d6b0f00e02..c7a14c7ed43 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -448,7 +448,11 @@ (define (file-system-shepherd-service file-system) ;; Make sure PID 1 doesn't keep TARGET busy. (chdir "/") - (umount #$target) + #$(if (file-system-mount-may-fail? file-system) + #~(catch 'system-error + (lambda () (umount #$target)) + (const #f)) + #~(umount #$target)) #f)) ;; We need additional modules.