vmsplice() really supports true splicing only from user memory to
a pipe. In the opposite direction, it actually just copies the
data to userspace. But this makes the interface nice and
symmetric and enables people to build on vmsplice() with room for
future improvement in performance.