-Wstrict-overflow
Simplify zfs dirlock reference counting.

No need to pass dzp around; dl has a pointer to it.
secpolicy_vnode_access must be called with the vnode lock held.

Don't unlock the vnode and then tell the caller about what the world
was like while the vnode was locked.  The world changes fast.
Fix various issues in zfs life cycle, locking, and vop protocol.

- Restore some zfs locking and unlocking that got lost randomly.

- Enable use of the BSD vnode lock.  Lock order: all BSD vnode locks
are taken before all zfs internal locks.  There remains an issue with
O_EXCL, to be solved later (famous last words).  KASSERT the locking
scheme up the wazoo.

- Take our cruft out of zfs_lookup and move it to zfs_netbsd_lookup.
Restore much of the way zfs_lookup looked to make merging future
versions easier.  Disable use of the namecache for now because its
locking dance is too scary to contemplate.

- Implement BSD semantics for rename, to appease our tests.  This is
a provisional kludge; eventually we need VOP_RENAME to take a flag
specifying whether to use BSD semantics or POSIX semantics.

- Simplify zfs_netbsd_reclaim and make it work.  Now that getnewvnode
never tries to vclean anything itself, we need not worry about
recursion of ZFS_OBJ_MUTEX locks.

- Clarify and fix genfs node initialization and destruction.

zfs passes most of our atf vfs tests now, including the rename races.

Still to do:

- fix the impedance mismatch between our permissions model and zfs's;
- fix O_EXCL (nontrivial);
- throw dirconc at it and see how badly it explodes;
- find why zpool sometimes wedges itself during mkfs; and
- find why pool caches sometimes seem to get corrupted.
Fail lookup of .. in a deleted directory with ENOENT.

Don't try to zget the parent, whose znode id may have been recycled
by now.

It's not clear to me how Solaris avoids this, but maybe I'm just
missing something obvious.
Restore _PC_NO_TRUNC in zfs_netbsd_pathconf.

Accidentally clobbered it in a previous commit while moving patches
around between source trees -- oops.
Fix a bug that armeb machine misunderstand MBR partition's offset
and size. Fixes PR#47081
Add distrib/common/Makefile.minirootkmod.  Apart from comments and the
conversion of some constants to variables, this is identical to the code
that was previously present in both distrib/amd64/kmod/Makefile and
distrib/i386/kmod/Makefile.

Change distrib/amd64/kmod/Makefile and distrib/i386/kmod/Makefile to just
set some variables and .include "../../common/Makefile.minirootkmod".
In distrib/*/ramdisks/common/Makefile.ramdisk, allow the caller to
pre-define the LISTS variable if they do not want it to include
${.CURDIR}/lists.  This opens the possibility of making some of the
many distrib/*/ramdisks/*/lists files shared in the future.

XXX: Some of the differences between these files seem to be unnecessary.
Make i386/ramdisks/common/list.ramdisk identical to
amd64/ramdisks/common/list.ramdisk.

Previously, the amd64 list.ramdisk used the small version of gzip from
distrib/utils/x_gzip, while the i386 list.ramdisk used the full version
of gzip built from usr.bin/gzip, and also used extra libraries needed to
make that work.  Now, they both use the small version.

The only other difference was in the order of some PROG lines.
Fix fallout from recent ed driver replacement. Makes amigappc build again.
* avoid problems if the platform calls readlink() from dlsym()
* alias __read_chk() to read() on Linux (technically, though,
  it should call host __read_chk() instead of read())