git: 6c9506559080 - main - Escape any '.' characters in sysctl node names

Alan Somers asomers at freebsd.org
Wed Aug 11 18:19:36 UTC 2021


On Wed, Aug 11, 2021 at 12:06 PM Ronald Klop <ronald-lists at klop.ws> wrote:

> On 7/22/21 6:23 PM, Alan Somers wrote:
> > The branch main has been updated by asomers:
> >
> > URL:
> https://cgit.FreeBSD.org/src/commit/?id=6c9506559080da2914749bf611225d7c0a153609
> >
> > commit 6c9506559080da2914749bf611225d7c0a153609
> > Author:     Alan Somers <asomers at FreeBSD.org>
> > AuthorDate: 2021-07-21 21:11:00 +0000
> > Commit:     Alan Somers <asomers at FreeBSD.org>
> > CommitDate: 2021-07-22 16:22:48 +0000
> >
> >      Escape any '.' characters in sysctl node names
> >
> >      ZFS creates some sysctl nodes that include a pool name, and '.' is
> an
> >      allowed character in pool names.  But it's the separator in the
> sysctl
> >      tree, so it can't be included in a sysctl name.  Replace it with
> "%25".
> >      Handily, "%" is illegal in ZFS pool names, so there's no ambiguity
> >      there.
>
>
> Hi,
>
> Wouldn't it be cleaner to enumerate the pools as numbers/ids and put the
> name of the pool in a field as the data instead of the key?
>
> Regards,
> Ronald.
>

In fact, the dataset name (not pool name) is already represented that way,
in a field like "kstat.zfs.zroot.dataset.objset-0x11.dataset_name:
zroot/ROOT".  So arguably the pool name should be represented in the same
way, for consistency's sake.  But that's a question to take up over at
https://github.com/openzfs/zfs .  Either way, FreeBSD's SYSCTL_ADD_NODE
shouldn't generate an unusable sysctl yet return success.
-Alan


More information about the dev-commits-src-main mailing list