fix(btrfs): subvolume mount behaviour

Since subvolumes appear automatically when their parent is mounted, no
action is required until the user wants them to be mounted somewhere
else.
This allows access to the volume manager capabilities of BTRFS.
This commit is contained in:
rogarb 2023-07-09 21:18:11 +02:00
parent f2248036d2
commit 7f3b98f72b
No known key found for this signature in database

View file

@ -91,16 +91,10 @@
let
subvolMounts = lib.concatMapAttrs
(_: subvol:
let
mountpoint =
if (subvol.mountpoint != null) then subvol.mountpoint
else if (config.mountpoint == null) then subvol.name
else null;
in
lib.optionalAttrs (mountpoint != null) {
${mountpoint} = ''
if ! findmnt ${config.device} "${rootMountPoint}${mountpoint}" > /dev/null 2>&1; then
mount ${config.device} "${rootMountPoint}${mountpoint}" \
lib.optionalAttrs (subvol.mountpoint != null) {
${subvol.mountpoint} = ''
if ! findmnt ${config.device} "${rootMountPoint}${subvol.mountpoint}" > /dev/null 2>&1; then
mount ${config.device} "${rootMountPoint}${subvol.mountpoint}" \
${lib.concatMapStringsSep " " (opt: "-o ${opt}") (subvol.mountOptions ++ [ "subvol=${subvol.name}" ])} \
-o X-mount.mkdir
fi