moved sendfile syscall to splice translation unit

sendfile functionally forms part of the splice group of syscalls (splice,
vmsplice and tee). Grouping sendfile with splice paves the way to compiling out
the splice group of syscalls for embedded systems that do not need these.
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
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/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.
fs/ext4: support compiling out splice

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

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