diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml index b4e2c79bde..98f71d2e7e 100644 --- a/man/systemd.mount.xml +++ b/man/systemd.mount.xml @@ -161,8 +161,15 @@ The NFS mount option for NFS background mounts as documented in nfs5 - is not supported in /etc/fstab entries. The systemd mount option - provides similar functionality and should be used instead. + is detected by systemd-fstab-generator and the options + are transformed so that systemd fulfills the job-control implications of + that option. Specifically systemd-fstab-generator acts + as though x-systemd.mount-timout=infinity,retry=10000 was + prepended to the option list, and fg,nofail was appended. + Depending on specific requirements, it may be appropriate to provide some of + these options explicitly, or to make use of the + x-systemd.automount option described below instead + of using bg. When reading /etc/fstab a few special mount options are understood by systemd which influence how diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index 0bbc6c71bc..7688a75f12 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -358,6 +358,20 @@ static int add_mount( "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n", source); + if (STR_IN_SET(fstype, "nfs", "nfs4") && !automount && + fstab_test_yes_no_option(opts, "bg\0" "fg\0")) { + /* The default retry timeout that mount.nfs uses for 'bg' mounts + * is 10000 minutes, where as it uses 2 minutes for 'fg' mounts. + * As we are making 'bg' mounts look like an 'fg' mount to + * mount.nfs (so systemd can manage the job-control aspects of 'bg'), + * we need to explicitly preserve that default, and also ensure + * the systemd mount-timeout doesn't interfere. + * By placing these options first, they can be over-ridden by + * settings in /etc/fstab. */ + opts = strjoina("x-systemd.mount-timeout=infinity,retry=10000,", opts, ",fg"); + nofail = true; + } + if (!nofail && !automount) fprintf(f, "Before=%s\n", post);