moved kernel_write out of splice translation unit

kernel_write shares infrastructure with the read_write translation unit but not
with the splice translation unit. Grouping kernel_write with the read_write
translation unit is more logical. It also paves the way to compiling out the
splice group of syscalls for embedded systems that do not need them.
fs: Support compiling out splice-family syscalls

Many embedded systems will not need the splice-family syscalls (splice,
vmsplice, tee and sendfile). Omitting them saves space.  This adds a new EXPERT
config option CONFIG_SYSCALL_SPLICE (default y) to support compiling them out.

This patch removes almost all callers of .splice_read() and .splice_write()
in the file_operations struct. This paves the way to eventually compile out the
.splice_read and .splice_write members of the file_operations struct as well as
the remaining splice-related infrastructure.

add/remove: 0/16 grow/shrink: 2/5 up/down: 114/-3693 (-3579)
function                                     old     new   delta
splice_direct_to_actor                       348     416     +68
splice_to_pipe                               371     417     +46
splice_from_pipe_next                        107     106      -1
fdput                                         11       -     -11
signal_pending                                39      26     -13
fdget                                         56      42     -14
user_page_pipe_buf_ops                        20       -     -20
user_page_pipe_buf_steal                      25       -     -25
file_end_write                                58      29     -29
file_start_write                              68      34     -34
pipe_to_user                                  43       -     -43
wakeup_pipe_readers                           54       -     -54
do_splice_to                                  87       -     -87
ipipe_prep.part                               92       -     -92
opipe_prep.part                              119       -    -119
sys_sendfile                                 122       -    -122
sys_sendfile64                               126       -    -126
sys_vmsplice                                 137       -    -137
vmsplice_to_user                             205       -    -205
sys_tee                                      491       -    -491
do_sendfile                                  492       -    -492
vmsplice_to_pipe                             558       -    -558
sys_splice                                  1020       -   -1020
fs: Macros to define splice file_operations

Provides a CONFIG_SYSCALL_SPLICE compatible way of defining the .splice_read
and .splice_write file_operations so that they can later be compiled out when
the kernel is configured without the splice-family syscalls
fs: splice file_operations member retrievers

Provides a CONFIG_SYSCALL_SPLICE compatible way of retrieving the .splice_read
and .splice_write file_operations to prevent code from breaking when they are
later compiled out if the kernel is configured without the splice-family
syscalls
fs/lustre: support compiling out splice

Prepares lustre for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/adfs: support compiling out splice

Prepares adfs for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/affs: support compiling out splice

Prepares affs for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/afs: support compiling out splice

Prepares afs for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/bad_inode: support to copile out splice

Prepares bad_inode for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/block_dev: support compiling out splice

Prepares block_dev for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/bfs: support compiling out splice

Prepares bfs for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/btrfs: support compiling out splice

Prepares btrfs for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/ceph: support compiling out splice

Prepares ceph for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/cifs: support compiling out splice

Prepares cifs for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/coda: support compiling out splice

Prepares coda for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/coda: optionally compile out splice

Compile out splice-related code when system doesn't support splice family of
syscalls (i.e. CONFIG_SYSCALL_SPLICE is undefined).
fs/encryptfs: support compiling out splice

Prepares encryptfs for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/exofs: support compiling out splice

Prepares exofs for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/ext2: support compiling out splice

Prepares ext2 for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.
fs/ext3: support compiling out splice

Prepares ext3 for the upcoming absence of splice file_operations when
CONFIG_SYSCALL_SPLICE is undefined.