kernel - Support bdwrite() on tmpfs buffer cache buffers
* tmpfs itself does not call bdwrite() when no swap space has been
allocated but certain system side effects such as nvtruncbuf()
when a file is truncated CAN cause bdwrite() to be called.
This eventually causes the buffer to run through tmpfs's strategy
function.
* Adjust the strategy function to handle the no-swap case by marking
the underlying pages dirty and valid and completing the I/O.
* Also handle the case when swap exists but fills up. If the
swap_strategy() function fails with ENOMEM fall-back to again
marking the pages dirty andvalid and completing the I/O.
This allows tmpfs to fill up to the system's total memory+swap instead
of just the system's swap.