repair 96432914

repair 96432914; bad natano!
more fallout from 96432914
Fixup 6563d357.
With clang strings are not aligned automatically.

This change allows random data to be extracted from strings
without causing misaligned accesses on strict align archs
for example arm.

ok patrick@
Fix hash bucket optimisation in uao_shrink_hash()

Call uao_shrink_flush() when doing the hash buckets optimisation in
uao_shrink_hash(). Failure to do so means that pages are not flushed,
and the anonymous object left in an inconsistent state.

For the record (and since I tend to forget things five minutes after
writing them): the point of this optimisation is not performance per se,
but rather a logical avoidance of malloc() in a code path whose purpose
is to free memory.

Adjust some comments while here.

OK oga@
Fix hash bucket optimisation in uao_grow_hash()

The assumption made by uao_grow_hash() that the buckets for the pages
being copied should not change can be violated under rare circumstances,
if and only if the hash mask changes. Detect this case and resort to
iterating over the existing buckets, effectively removing the elements
from the old hash table and inserting them afresh.

OK oga@
Add uao_check_swhash()

Introduce a function for asserting the correctness of a aobj's swhash
and call it from uao_setsize() to ensure consistency.

OK oga@
Make sure our arm miniroot doesn't have overlapping partitions.

Due to the new fdisk overlapping check, we need to make sure
our partition table doesn't have a full-sized OpenBSD partition
before we create the full-sizes FAT/EXT2 partition.

It's always better to have a clean partition table.

ok drahn@
arm sets sync
Fix pkg.conf generation by the installer.

ever since we moved our mirror path format (over a year ago) this regex
has been plain wrong and just meaning that no new install gets a
pkg.conf. We can actualy simplify here since in our format thep ackages
dir is always a subdir of the release dir. So jus append /packages and
call it a good 'un.

tested by jcv@ for whom this previously failed.

ok drahn, jcv.
Use the mountpoint for unmounting

Use the mountpoint for unmount instead of the device name. This makes
the tests friendlier towards other file systems (tmpfs, for instance).
Make these tests filesystem-agnostic; add tmpfs

Make these tests filesystem-agnostic. Add tmpfs support while there.
Write output to a log file.
Allow tests to run independently

Allow tests to run independently, i.e

(cd /usr/src/regress/sys/fs && make test-tmpfs)

to run only the tmpfs tests.
The mutex argument is mandatory in msleep()

The mutex argument is mandatory in msleep(), as pointed out by
thorduri@.

OK patrick@ oga@
Remove mutex(9) breakage in wapbl_bbusy()

There is no need to acquire the mtx_enter() after msleep() since
msleep() already acquires it. Also, the mutex argument is non-optional
at this point.

OK patrick@ oga@
wapbl_entry_pool needs IPL_BIO protection

We pool_put() from wapbl_biodone(), therefore wapbl_entry_pool needs
IPL_BIO protection, as found the hard way by patrick@.

OK oga@
Add WAPBL regression target
There's no reason to use 'set -e' here.
Use disklabel.