MFC r277396, r278681, r278865, r278924, r279205, r280208,
r280210, r280764 and r280768:
Update the Linux compatibility layer:
- Add more functions.
- Add some missing includes which are needed when the header files are not included in a particular order.
- The kasprintf() function cannot be inlined due to using a variable number of arguments. Move it to a C-file.
- Fix problems about 32-bit ticks wraparound and unsigned long conversion. Jiffies or ticks in FreeBSD have integer type and are not long.
- Add missing "order_base_2()" macro.
- Fix BUILD_BUG_ON() macro.
- Declare a missing symbol which is needed when compiling without -O2
- Clean up header file inclusions in the linux/completion.h, linux/in.h and linux/fs.h header files.
Sponsored by: Mellanox Technologies