sys/vfs: wake vclean after failed vnode lock attempts
vclean() sets VXLOCK and waits for v_lockcount to drain before taking
the vnode lock with LK_DRAIN. vn_lock() already woke that waiter when a
racing VOP_LOCK() succeeded, noticed VXLOCK, and had to drop the lock
again.
Do the same wakeup when the racing VOP_LOCK() fails. A failed attempt
still decrements v_lockcount, and if it was the last in flight attempt,
vclean() must be notified that the drain condition is satisfied.
Backout sdmmc(4) arm64 hibernate "fix", since it would cause memory side
effects which are not allowed during hibernation. We need to find another
solution.
Highlighted by mlarkin@
lang/gpc: build fixes for llvm22
This hack in the GCC 4.2.4 code base
#define U (const unsigned char *) /* Intended use: U"string" */
clashes with the more recent syntax for string literals of type
char32_t[]. Pick an unobtrusive fix from GCC 4.4 and replace U
with UC.