mirror of
https://github.com/containers/podman.git
synced 2025-06-02 10:46:09 +08:00
Update containers/storage to v1.15.3
Signed-off-by: Matthew Heon <mheon@redhat.com>
This commit is contained in:
2
vendor/github.com/containers/storage/VERSION
generated
vendored
2
vendor/github.com/containers/storage/VERSION
generated
vendored
@ -1 +1 @@
|
||||
1.15.2
|
||||
1.15.3
|
||||
|
9
vendor/github.com/containers/storage/drivers/overlay/overlay.go
generated
vendored
9
vendor/github.com/containers/storage/drivers/overlay/overlay.go
generated
vendored
@ -676,9 +676,6 @@ func (d *Driver) getLower(parent string) (string, error) {
|
||||
parentLowers := strings.Split(string(parentLower), ":")
|
||||
lowers = append(lowers, parentLowers...)
|
||||
}
|
||||
if len(lowers) > maxDepth {
|
||||
return "", errors.New("max depth exceeded")
|
||||
}
|
||||
return strings.Join(lowers, ":"), nil
|
||||
}
|
||||
|
||||
@ -828,6 +825,10 @@ func (d *Driver) get(id string, disableShifting bool, options graphdriver.MountO
|
||||
if err != nil && !os.IsNotExist(err) {
|
||||
return "", err
|
||||
}
|
||||
splitLowers := strings.Split(string(lowers), ":")
|
||||
if len(splitLowers) > maxDepth {
|
||||
return "", errors.New("max depth exceeded")
|
||||
}
|
||||
|
||||
// absLowers is the list of lowers as absolute paths, which works well with additional stores.
|
||||
absLowers := []string{}
|
||||
@ -851,7 +852,7 @@ func (d *Driver) get(id string, disableShifting bool, options graphdriver.MountO
|
||||
|
||||
// For each lower, resolve its path, and append it and any additional diffN
|
||||
// directories to the lowers list.
|
||||
for _, l := range strings.Split(string(lowers), ":") {
|
||||
for _, l := range splitLowers {
|
||||
if l == "" {
|
||||
continue
|
||||
}
|
||||
|
6
vendor/github.com/containers/storage/layers.go
generated
vendored
6
vendor/github.com/containers/storage/layers.go
generated
vendored
@ -475,7 +475,7 @@ func (r *layerStore) saveMounts() error {
|
||||
return r.loadMounts()
|
||||
}
|
||||
|
||||
func newLayerStore(rundir string, layerdir string, driver drivers.Driver, uidMap, gidMap []idtools.IDMap) (LayerStore, error) {
|
||||
func (s *store) newLayerStore(rundir string, layerdir string, driver drivers.Driver) (LayerStore, error) {
|
||||
if err := os.MkdirAll(rundir, 0700); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -501,8 +501,8 @@ func newLayerStore(rundir string, layerdir string, driver drivers.Driver, uidMap
|
||||
byid: make(map[string]*Layer),
|
||||
bymount: make(map[string]*Layer),
|
||||
byname: make(map[string]*Layer),
|
||||
uidMap: copyIDMap(uidMap),
|
||||
gidMap: copyIDMap(gidMap),
|
||||
uidMap: copyIDMap(s.uidMap),
|
||||
gidMap: copyIDMap(s.gidMap),
|
||||
}
|
||||
if err := rlstore.Load(); err != nil {
|
||||
return nil, err
|
||||
|
16
vendor/github.com/containers/storage/pkg/tarlog/tarlogger.go
generated
vendored
16
vendor/github.com/containers/storage/pkg/tarlog/tarlogger.go
generated
vendored
@ -11,7 +11,6 @@ import (
|
||||
type tarLogger struct {
|
||||
writer *io.PipeWriter
|
||||
closeMutex *sync.Mutex
|
||||
stateMutex *sync.Mutex
|
||||
closed bool
|
||||
}
|
||||
|
||||
@ -22,7 +21,6 @@ func NewLogger(logger func(*tar.Header)) (io.WriteCloser, error) {
|
||||
t := &tarLogger{
|
||||
writer: writer,
|
||||
closeMutex: new(sync.Mutex),
|
||||
stateMutex: new(sync.Mutex),
|
||||
closed: false,
|
||||
}
|
||||
tr := tar.NewReader(reader)
|
||||
@ -35,12 +33,9 @@ func NewLogger(logger func(*tar.Header)) (io.WriteCloser, error) {
|
||||
|
||||
}
|
||||
// Make sure to avoid writes after the reader has been closed.
|
||||
t.stateMutex.Lock()
|
||||
t.closed = true
|
||||
if err := reader.Close(); err != nil {
|
||||
logrus.Errorf("error closing tarlogger reader: %v", err)
|
||||
}
|
||||
t.stateMutex.Unlock()
|
||||
// Unblock the Close().
|
||||
t.closeMutex.Unlock()
|
||||
}()
|
||||
@ -48,16 +43,19 @@ func NewLogger(logger func(*tar.Header)) (io.WriteCloser, error) {
|
||||
}
|
||||
|
||||
func (t *tarLogger) Write(b []byte) (int, error) {
|
||||
t.stateMutex.Lock()
|
||||
if t.closed {
|
||||
// We cannot use os.Pipe() as this alters the tar's digest. Using
|
||||
// io.Pipe() requires this workaround as it does not allow for writes
|
||||
// after close.
|
||||
t.stateMutex.Unlock()
|
||||
return len(b), nil
|
||||
}
|
||||
t.stateMutex.Unlock()
|
||||
return t.writer.Write(b)
|
||||
n, err := t.writer.Write(b)
|
||||
if err == io.ErrClosedPipe {
|
||||
// The pipe got closed. Track it and avoid to call Write in future.
|
||||
t.closed = true
|
||||
return len(b), nil
|
||||
}
|
||||
return n, err
|
||||
}
|
||||
|
||||
func (t *tarLogger) Close() error {
|
||||
|
11
vendor/github.com/containers/storage/store.go
generated
vendored
11
vendor/github.com/containers/storage/store.go
generated
vendored
@ -667,15 +667,6 @@ func (s *store) load() error {
|
||||
s.graphDriverName = driver.String()
|
||||
driverPrefix := s.graphDriverName + "-"
|
||||
|
||||
rls, err := s.LayerStore()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
s.layerStore = rls
|
||||
if _, err := s.ROLayerStores(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
gipath := filepath.Join(s.graphRoot, driverPrefix+"images")
|
||||
if err := os.MkdirAll(gipath, 0700); err != nil {
|
||||
return err
|
||||
@ -774,7 +765,7 @@ func (s *store) LayerStore() (LayerStore, error) {
|
||||
if err := os.MkdirAll(glpath, 0700); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
rls, err := newLayerStore(rlpath, glpath, driver, s.uidMap, s.gidMap)
|
||||
rls, err := s.newLayerStore(rlpath, glpath, driver)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
Reference in New Issue
Block a user