[systemd-devel] [PATCH] fstab-generator: Allow mount.usr without mount.usrflags, honor rw/ro

Michael Marineau michael.marineau at coreos.com
Mon Dec 8 10:42:38 PST 2014


On Sun, Dec 7, 2014 at 4:51 PM, Zbigniew Jędrzejewski-Szmek
<zbyszek at in.waw.pl> wrote:
> On Sat, Dec 06, 2014 at 02:47:51PM -0800, Michael Marineau wrote:
>> There is no need to require mount.usrflags. The original implementation
>> assumed that a btrfs subvolume would always be needed but that is not
>> applicable to systems that do not use btrfs for /usr.
>>
>> Similar to using rootflags= for the default of mount.usrflags=, append
>> the classic 'ro' and 'rw' flags to the mount options.
>> ---
>>  src/fstab-generator/fstab-generator.c | 11 +++++++++--
>>  1 file changed, 9 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c
>> index e8a21f7..236fb37 100644
>> --- a/src/fstab-generator/fstab-generator.c
>> +++ b/src/fstab-generator/fstab-generator.c
>> @@ -476,7 +476,7 @@ static int add_usr_mount(void) {
>>                          return log_oom();
>>          }
>>
>> -        if (!arg_usr_what || !arg_usr_options)
>> +        if (!arg_usr_what)
>>                  return 0;
>>
>>          what = fstab_node_to_udev_node(arg_usr_what);
>> @@ -485,7 +485,14 @@ static int add_usr_mount(void) {
>>                  return -1;
>>          }
>>
>> -        opts = arg_usr_options;
>> +        if (!arg_usr_options)
>> +                opts = arg_root_rw > 0 ? "rw" : "ro";
>> +        else if (arg_root_rw >= 0 ||
>> +                 (!mount_test_option(arg_usr_options, "ro") &&
>> +                  !mount_test_option(arg_usr_options, "rw")))
> This condition looks wrong. "rw" or "ro" will be always appended when
> arg_root_rw is set. Is the intent to override arg_usr_options?
>
> Zbyszek

Hm, yes. I read this wrong when coping it from add_root_mount,
assuming that 'rootflags=' had precedence over the bare 'ro' and 'rw'
options but it apparently is the other way around. For /usr we can
just drop the 'arg_root_rw >= 0 ||' bit so 'mount.usrflags=' has
precedence. Will resend the patch.

>
>> +                opts = strappenda(arg_usr_options, ",", arg_root_rw > 0 ? "rw" : "ro");
>> +        else
>> +                opts = arg_usr_options;
>>
>>          log_debug("Found entry what=%s where=/sysroot/usr type=%s", what, strna(arg_usr_fstype));
>>          return add_mount(what,
>> --
>> 2.0.4
>>
>> _______________________________________________
>> systemd-devel mailing list
>> systemd-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/systemd-devel


More information about the systemd-devel mailing list