diff options
| -rw-r--r-- | man/systemd.mount.xml | 14 | ||||
| -rw-r--r-- | man/systemd.swap.xml | 20 | ||||
| -rw-r--r-- | src/fstab-generator/fstab-generator.c | 34 | 
3 files changed, 39 insertions, 29 deletions
| diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml index 8d9517a913..bb372d788a 100644 --- a/man/systemd.mount.xml +++ b/man/systemd.mount.xml @@ -337,14 +337,12 @@        <varlistentry>          <term><varname>What=</varname></term> -        <listitem><para>Takes an absolute path of a device node, file -        or other resource to mount. See -        <citerefentry project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry> -        for details. If this refers to a device node, a dependency on -        the respective device unit is automatically created. (See -        <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry> -        for more information.) This option is -        mandatory.</para></listitem> +        <listitem><para>Takes an absolute path of a device node, file or other resource to mount. See <citerefentry +        project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry> for details. If +        this refers to a device node, a dependency on the respective device unit is automatically created. (See +        <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry> for more +        information.) This option is mandatory. Note that the usual specifier expansion is applied to this setting, +        literal percent characters should hence be written as <literal>%%</literal>.</para></listitem>        </varlistentry>        <varlistentry> diff --git a/man/systemd.swap.xml b/man/systemd.swap.xml index 7f82d69725..d2c2027228 100644 --- a/man/systemd.swap.xml +++ b/man/systemd.swap.xml @@ -170,17 +170,15 @@        <varlistentry>          <term><varname>What=</varname></term> -        <listitem><para>Takes an absolute path of a device node or -        file to use for paging. See -        <citerefentry project='man-pages'><refentrytitle>swapon</refentrytitle><manvolnum>8</manvolnum></citerefentry> -        for details. If this refers to a device node, a dependency on -        the respective device unit is automatically created. (See -        <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry> -        for more information.) If this refers to a file, a dependency -        on the respective mount unit is automatically created. (See -        <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry> -        for more information.) This option is -        mandatory.</para></listitem> +        <listitem><para>Takes an absolute path of a device node or file to use for paging. See <citerefentry +        project='man-pages'><refentrytitle>swapon</refentrytitle><manvolnum>8</manvolnum></citerefentry> for +        details. If this refers to a device node, a dependency on the respective device unit is automatically +        created. (See +        <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry> for more +        information.) If this refers to a file, a dependency on the respective mount unit is automatically +        created. (See <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry> +        for more information.) This option is mandatory. Note that the usual specifier expansion is applied to this +        setting, literal percent characters should hence be written as <literal>%%</literal>.</para></listitem>        </varlistentry>        <varlistentry> diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index 00c6b2d37b..d97bafd1fb 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -74,6 +74,17 @@ static int write_options(FILE *f, const char *options) {          return 1;  } +static int write_what(FILE *f, const char *what) { +        _cleanup_free_ char *w = NULL; + +        w = strreplace(what, "%", "%%"); +        if (!w) +                return log_oom(); + +        fprintf(f, "What=%s\n", w); +        return 1; +} +  static int add_swap(                  const char *what,                  struct mntent *me, @@ -113,14 +124,15 @@ static int add_swap(                                         "Failed to create unit file %s: %m",                                         unit); -        fprintf(f, -                "# Automatically generated by systemd-fstab-generator\n\n" -                "[Unit]\n" -                "SourcePath=/etc/fstab\n" -                "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n\n" -                "[Swap]\n" -                "What=%s\n", -                what); +        fputs("# Automatically generated by systemd-fstab-generator\n\n" +              "[Unit]\n" +              "SourcePath=/etc/fstab\n" +              "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n\n" +              "[Swap]\n", f); + +        r = write_what(f, what); +        if (r < 0) +                return r;          r = write_options(f, me->mnt_opts);          if (r < 0) @@ -349,11 +361,13 @@ static int add_mount(          fprintf(f,                  "\n"                  "[Mount]\n" -                "What=%s\n"                  "Where=%s\n", -                what,                  where); +        r = write_what(f, what); +        if (r < 0) +                return r; +          if (!isempty(fstype) && !streq(fstype, "auto"))                  fprintf(f, "Type=%s\n", fstype); | 
