overlay2: close read end of pipe on mount exec

Use StdinPipe to ensure pipe is properly closed after startup

Fixes #23686

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
(cherry picked from commit ad4b3e11fe)
This commit is contained in:
Derek McGowan 2016-06-28 13:23:00 -07:00 committed by Tibor Vass
parent 0f1439a065
commit 07bd7b0128

View file

@ -32,12 +32,6 @@ type mountOptions struct {
}
func mountFrom(dir, device, target, mType, label string) error {
r, w, err := os.Pipe()
if err != nil {
return fmt.Errorf("mountfrom pipe failure: %v", err)
}
options := &mountOptions{
Device: device,
Target: target,
@ -47,7 +41,10 @@ func mountFrom(dir, device, target, mType, label string) error {
}
cmd := reexec.Command("docker-mountfrom", dir)
cmd.Stdin = r
w, err := cmd.StdinPipe()
if err != nil {
return fmt.Errorf("mountfrom error on pipe creation: %v", err)
}
output := bytes.NewBuffer(nil)
cmd.Stdout = output