On Mon, Jan 28, 2019 at 1:36 PM Dave Young <dyoung(a)redhat.com> wrote:
On 01/28/19 at 01:21pm, Kairui Song wrote:
> Currently we use "\b" (word boundary) as the delimiter for ro option,
> which is not correct. For mount options like
> "defaults,errors=remount-ro" the ro on the tail will also be replaced
> and result in an invalid mount option.
>
> So we use a more strict logic on detecting ro mount option. It should
> either starts with "," or "^" (begin of line) and ends with
"," or "$"
> (end of line), and keep the delimiter untouched. This should ensure
> only valid mount option got detected and replaced.
>
> This passed following tests:
>
> defaults,ro,noauto,errors=remount-ro,nobootwait,nofail =>
defaults,rw,errors=remount-ro,
> defaults,errors=remount-ro => defaults,errors=remount-ro
> defaults,ro,relatime => defaults,rw,relatime
> defaults,ro => defaults,rw
Has it cover white space arounded word eg. " ro" " ro "?
Hi Dave, I'm not sure what do you mean about the white space.
In mkdumprd, "findmnt -k -f -n -r -o OPTIONS" is used for retrieving
the option, so there should not be tailing or leading white space.
Even if there is space in options (like pathname) it will truncate it:
eg. if we have:
overlay on /mnt/root/upper type overlay
(rw,relatime,seclabel,lowerdir=/mnt/root/name with
space,upperdir=/mnt/root/upper,workdir=/mnt/root/work)
findmnt will give this output:
$ findmnt -k -n -r -f /mnt/root/upper/ -o OPTIONS
rw,relatime,seclabel,lowerdir=/mnt/root/name\x20with\x20space,upperdir=/mnt/root/upper,workdir=/mnt/root/work
Also for lines in fstab no space is allowed, need to be truncated to
\040 or will get an error like this:
/etc/fstab: parse error at line 17 -- ignored
--
Best Regards,
Kairui Song