kernel - Fix TRIM bugs in UFS
* Fix serious bug in devfs's implementation of VOP_FREEBLKS. devfs was
running this operation asynchronously, but callers (aka UFS) expect it
to run synchronously.
* Fix minor bug in CAM related to TRIM failures.
* Enforce block count limitations in NVMe for WRITEZ.
* Mostly applicable to NVMe, which will implement FREEBLKS using the WRITEZ
command (at least for now). Trim is disabled on SATA SSDs by default in
the driver.
Fixes UEFI booting issues with NVMe when using a UFS /boot. Writing or
updating the UFS /boot mounted via NVMe resulted in a corrupt partition due
to the asynchronous VOP_FREEBLKS that we fixed above.
Reported-by: mneumann.