kernel - Attempt to workaround low memory deadlock
* Mark the hammer flusher threads as system threads and call
vm_wait_nominal() in the inode flush loop prior to acquiring
an inode lock.
* This attempts to work around an issue where the pageout daemon has
to do a BMAP indirectly via vnode_pager_put_pages(), which requires
a dive into hammer deep enough to need the inode lock.
The pageout daemon checks the vnode lock but has no visibility into
the inode lock. Only the hammer backend (theoretically) can acquire
the inode lock without holding the vnode lock. Hopefully this will
improve the issue.
Reported-by: Antonio Huete Jimenez <tuxillo@quantumachine.net>