gvisor/pkg/sentry/kernel/pipe
Adin Scannell 7c6ab6a219 Implement splice methods for pipes and sockets.
This also allows the tee(2) implementation to be enabled, since dup can now be
properly supported via WriteTo.

Note that this change necessitated some minor restructoring with the
fs.FileOperations splice methods. If the *fs.File is passed through directly,
then only public API methods are accessible, which will deadlock immediately
since the locking is already done by fs.Splice. Instead, we pass through an
abstract io.Reader or io.Writer, which elide locks and use the underlying
fs.FileOperations directly.

PiperOrigin-RevId: 268805207
2019-09-12 17:43:27 -07:00
..
BUILD Remove go_test from go_stateify and go_marshal 2019-09-12 15:10:17 -07:00
buffer.go Implement splice methods for pipes and sockets. 2019-09-12 17:43:27 -07:00
buffer_test.go Update canonical repository. 2019-06-13 16:50:15 -07:00
device.go Update canonical repository. 2019-06-13 16:50:15 -07:00
node.go Update canonical repository. 2019-06-13 16:50:15 -07:00
node_test.go Plumb context through more layers of filesytem. 2019-06-13 18:40:38 -07:00
pipe.go Implement splice methods for pipes and sockets. 2019-09-12 17:43:27 -07:00
pipe_test.go Update canonical repository. 2019-06-13 16:50:15 -07:00
reader.go Update canonical repository. 2019-06-13 16:50:15 -07:00
reader_writer.go Implement splice methods for pipes and sockets. 2019-09-12 17:43:27 -07:00
writer.go Update canonical repository. 2019-06-13 16:50:15 -07:00