| Copyright 2020 The Monogon Project Authors. | 
 |  | 
 | Licensed under the Apache License, Version 2.0 (the "License"); | 
 | you may not use this file except in compliance with the License. | 
 | You may obtain a copy of the License at | 
 |  | 
 |   http://www.apache.org/licenses/LICENSE-2.0 | 
 |  | 
 | Unless required by applicable law or agreed to in writing, software | 
 | distributed under the License is distributed on an "AS IS" BASIS, | 
 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
 | See the License for the specific language governing permissions and | 
 | limitations under the License. | 
 |  | 
 |  | 
 | From 6cbcb8e61b60046e51ff79674b78031707739401 Mon Sep 17 00:00:00 2001 | 
 | From: Lorenz Brun <lorenz@brun.one> | 
 | Date: Wed, 6 May 2020 18:52:14 +0200 | 
 | Subject: [PATCH] Fix externally-configured non-standard root paths | 
 |  | 
 | Going upstream as https://github.com/google/gvisor-containerd-shim/pull/60 | 
 |  | 
 | --- | 
 |  pkg/v2/service.go | 6 ++++-- | 
 |  1 file changed, 4 insertions(+), 2 deletions(-) | 
 |  | 
 | diff --git a/pkg/v2/service.go b/pkg/v2/service.go | 
 | index c1df4b8..f7f5847 100644 | 
 | --- a/pkg/v2/service.go | 
 | +++ b/pkg/v2/service.go | 
 | @@ -103,6 +103,7 @@ type service struct { | 
 |  	processes map[string]process.Process | 
 |  	events    chan interface{} | 
 |  	platform  stdio.Platform | 
 | +	opts      options.Options | 
 |  	ec        chan proc.Exit | 
 |   | 
 |  	id     string | 
 | @@ -194,7 +195,7 @@ func (s *service) Cleanup(ctx context.Context) (*taskAPI.DeleteResponse, error) | 
 |  	if err != nil { | 
 |  		return nil, err | 
 |  	} | 
 | -	r := proc.NewRunsc(proc.RunscRoot, path, ns, runtime, nil) | 
 | +	r := proc.NewRunsc(s.opts.Root, path, ns, runtime, nil) | 
 |  	if err := r.Delete(ctx, s.id, &runsc.DeleteOpts{ | 
 |  		Force: true, | 
 |  	}); err != nil { | 
 | @@ -344,6 +345,7 @@ func (s *service) Create(ctx context.Context, r *taskAPI.CreateTaskRequest) (_ * | 
 |  	s.id = r.ID | 
 |  	s.bundle = r.Bundle | 
 |  	s.task = process | 
 | +	s.opts = opts | 
 |  	return &taskAPI.CreateTaskResponse{ | 
 |  		Pid: uint32(process.Pid()), | 
 |  	}, nil | 
 | @@ -577,7 +579,7 @@ func (s *service) Stats(ctx context.Context, r *taskAPI.StatsRequest) (*taskAPI. | 
 |  	if err != nil { | 
 |  		return nil, err | 
 |  	} | 
 | -	rs := proc.NewRunsc(proc.RunscRoot, path, ns, runtime, nil) | 
 | +	rs := proc.NewRunsc(s.opts.Root, path, ns, runtime, nil) | 
 |  	stats, err := rs.Stats(ctx, s.id) | 
 |  	if err != nil { | 
 |  		return nil, err | 
 | --  | 
 | 2.25.1 | 
 |  |