Download raw body.
rc: skip rootdisk_nodes if we are running diskless
On Wed, 9 Sep 2026 11:03:32 -0700
Andrew Hewus Fresh <afresh1@openbsd.org> wrote:
> On Tue, Sep 08, 2026 at 09:15:08PM +0330, chara wrote:
> > ping.
> >
> > On Wed, 02 Sep 2026 14:37:00 -0600
> > "Theo de Raadt" <deraadt@openbsd.org> wrote:
> >
> > > That looks good to me.
>
> It looked OK to me, this is the same, but with some consistency fixes to
> use [[ ]] as is done elsewhere in /etc/rc and not use `if` for early
> returns and local variables in use.
>
> I can split the commits if desired.
>
> Comments, OK?
>
>
> Index: rc
> ===================================================================
> RCS file: /cvs/src/etc/rc,v
> diff -u -p -r1.593 rc
> --- rc 3 Sep 2026 18:56:40 -0000 1.593
> +++ rc 9 Sep 2026 18:02:19 -0000
> @@ -308,22 +308,26 @@ run_upgrade_script() {
> # mount -uw /dev/rootdisk /
> # cd /dev && ./MAKEDEV redodisks
> rootdisk_nodes() {
> - if [ $(sysctl -n kern.maxpartitions) = 16 ]; then
> - _rootdev=$(mount | grep ' / ' | cut -d' ' -f1)
> - _maj=$(stat -f "%Hr" $_rootdev)
> - _omin=$(stat -f "%Lr" $_rootdev)
> - _min=$((_omin / 16 * 64))
> - if [ -b /dev/rootdisk -a \
> - "$(stat -qf %Hr,%Lr /dev/rootdisk)" = "$_maj,$_min" ]; then
> - return
> - fi
> - # does not exist or device changed, redo
> - _rrootdev=$(echo $_rootdev | sed -e 's,dev/,dev/r,')
> - _rmaj=$(stat -f "%Hr" $_rrootdev)
> - rm -f /dev/rrootdisk /dev/rootdisk
> - mknod -m 600 /dev/rrootdisk c $_rmaj $_min
> - mknod -m 600 /dev/rootdisk b $_maj $_min
> - fi
> + local _rootdev _rrootdev _maj _rmaj _omin _min
> + [[ $(sysctl -n kern.maxpartitions) = 16 ]] || return
> +
> + # Find and use root device if we are not booting from NFS
> + _rootdev=$(mount | grep ' / ' | grep -v ':' | cut -d' ' -f1)
perhaps putting an space between cut arguments would make it more readable.
> + [[ -n $_rootdev ]] || return
> +
> + _maj=$(stat -f "%Hr" $_rootdev)
> + _omin=$(stat -f "%Lr" $_rootdev)
> + _min=$((_omin / 16 * 64))
> + [[ -b /dev/rootdisk ]] &&
> + [[ "$(stat -qf %Hr,%Lr /dev/rootdisk)" = "$_maj,$_min" ]] &&
> + return
> +
> + # does not exist or device changed, redo
> + _rrootdev=$(echo $_rootdev | sed -e 's,dev/,dev/r,')
> + _rmaj=$(stat -f "%Hr" $_rrootdev)
> + rm -f /dev/rrootdisk /dev/rootdisk
> + mknod -m 600 /dev/rrootdisk c $_rmaj $_min
> + mknod -m 600 /dev/rootdisk b $_maj $_min
> }
>
> # Check filesystems, optionally by using a fsck(8) flag.
>
--
chara <chara@cloud9p.org>
rc: skip rootdisk_nodes if we are running diskless