Anyone know why /etc/rc.d/lockd REQUIRES nfsd?

From: Rick Macklem <rmacklem_at_uoguelph.ca>
Date: Sun, 21 Nov 2021 23:09:23 UTC
Hi,

PR#254282 reports a problem where nullfs mounts cannot be
exported via mountd for FreeBSD 13.0.

The problem seems to be that, to do the nullfs mounts in
/etc/fstab, they require the "late" mount option, so that the
underlying filesystem is mounted (ZFS for the PR).

Adding "mountlate" to the REQUIRE list in /etc/rc.d/mountd
fixes the problem, but that results in a dependency cycle
because /etc/rc.d/lockd specifies:
# REQUIRE: nfsd
# BEFORE: DAEMON
--> which forces mountd to preceed DAEMON.

I think I know why lockd specifies:
# BEFORE: DAEMON
--> I suspect that some daemon requires file locking and that
       requires lockd to be running, for an NFS mounted root fs.

However, I cannot think of any reason that nfsd must be running
before lockd is started. The "REQUIRE: nfsd" seems to have been
inherited from NetBSD when first imported to FreeBSD about 20
years ago.

So, can anyone see why lockd might need nfsd running first?
(Without "# REQUIRE: nfsd" in lockd and statd, "# REQUIRE: mountlate"
 can be added to /etc/rc.d/mountd without creating a dependency cycle
and seems to fix the problem in the PR during limited testing.)


rick