mirror of
				https://github.com/containers/podman.git
				synced 2025-11-04 08:56:05 +08:00 
			
		
		
		
	Allow API to specify size and inode quota
Fixes: https://github.com/containers/podman/issues/11016 [NO NEW TESTS NEEDED] We have no easy way to tests this in CI/CD systems. Requires quota to be setup on directories to work. Fixes: https://github.com/containers/podman/issues/11016 Signed-off-by: Daniel J Walsh <dwalsh@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.37.0
 | 
			
		||||
1.37.0+dev
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/github.com/containers/storage/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/containers/storage/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -5,12 +5,10 @@ module github.com/containers/storage
 | 
			
		||||
require (
 | 
			
		||||
	github.com/BurntSushi/toml v0.4.1
 | 
			
		||||
	github.com/Microsoft/go-winio v0.5.0
 | 
			
		||||
	github.com/Microsoft/hcsshim v0.8.22
 | 
			
		||||
	github.com/Microsoft/hcsshim v0.9.0
 | 
			
		||||
	github.com/containerd/stargz-snapshotter/estargz v0.9.0
 | 
			
		||||
	github.com/docker/go-units v0.4.0
 | 
			
		||||
	github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
 | 
			
		||||
	github.com/google/go-intervals v0.0.2
 | 
			
		||||
	github.com/google/uuid v1.2.0 // indirect
 | 
			
		||||
	github.com/hashicorp/go-multierror v1.1.1
 | 
			
		||||
	github.com/json-iterator/go v1.1.12
 | 
			
		||||
	github.com/klauspost/compress v1.13.6
 | 
			
		||||
@ -18,11 +16,10 @@ require (
 | 
			
		||||
	github.com/mattn/go-shellwords v1.0.12
 | 
			
		||||
	github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible
 | 
			
		||||
	github.com/moby/sys/mountinfo v0.4.1
 | 
			
		||||
	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 | 
			
		||||
	github.com/opencontainers/go-digest v1.0.0
 | 
			
		||||
	github.com/opencontainers/runc v1.0.2
 | 
			
		||||
	github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417
 | 
			
		||||
	github.com/opencontainers/selinux v1.8.5
 | 
			
		||||
	github.com/opencontainers/selinux v1.9.1
 | 
			
		||||
	github.com/pkg/errors v0.9.1
 | 
			
		||||
	github.com/sirupsen/logrus v1.8.1
 | 
			
		||||
	github.com/stretchr/testify v1.7.0
 | 
			
		||||
@ -30,8 +27,7 @@ require (
 | 
			
		||||
	github.com/tchap/go-patricia v2.3.0+incompatible
 | 
			
		||||
	github.com/ulikunitz/xz v0.5.10
 | 
			
		||||
	github.com/vbatts/tar-split v0.11.2
 | 
			
		||||
	golang.org/x/net v0.0.0-20210226172049-e18ecbb05110
 | 
			
		||||
	golang.org/x/net v0.0.0-20210825183410-e898025ed96a
 | 
			
		||||
	golang.org/x/sys v0.0.0-20210820121016-41cdb8703e55
 | 
			
		||||
	gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
 | 
			
		||||
	gotest.tools v2.2.0+incompatible
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										726
									
								
								vendor/github.com/containers/storage/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										726
									
								
								vendor/github.com/containers/storage/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										6
									
								
								vendor/github.com/containers/storage/storage.conf
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/containers/storage/storage.conf
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -11,8 +11,14 @@ driver = "overlay"
 | 
			
		||||
runroot = "/run/containers/storage"
 | 
			
		||||
 | 
			
		||||
# Primary Read/Write location of container storage
 | 
			
		||||
# When changing the graphroot location on an SELINUX system, you must
 | 
			
		||||
# ensure  the labeling matches the default locations labels with the
 | 
			
		||||
# following commands:
 | 
			
		||||
# semanage fcontext -a -e /var/lib/containers/storage /NEWSTORAGEPATH
 | 
			
		||||
# restorecon -R -v /NEWSTORAGEPATH
 | 
			
		||||
graphroot = "/var/lib/containers/storage"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Storage path for rootless users
 | 
			
		||||
#
 | 
			
		||||
# rootless_storage_path = "$HOME/.local/share/containers/storage"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										34
									
								
								vendor/github.com/containers/storage/store.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								vendor/github.com/containers/storage/store.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -575,10 +575,11 @@ type ContainerOptions struct {
 | 
			
		||||
	// container's layer will inherit settings from the image's top layer
 | 
			
		||||
	// or, if it is not being created based on an image, the Store object.
 | 
			
		||||
	types.IDMappingOptions
 | 
			
		||||
	LabelOpts []string
 | 
			
		||||
	Flags     map[string]interface{}
 | 
			
		||||
	MountOpts []string
 | 
			
		||||
	Volatile  bool
 | 
			
		||||
	LabelOpts  []string
 | 
			
		||||
	Flags      map[string]interface{}
 | 
			
		||||
	MountOpts  []string
 | 
			
		||||
	Volatile   bool
 | 
			
		||||
	StorageOpt map[string]string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type store struct {
 | 
			
		||||
@ -1384,7 +1385,7 @@ func (s *store) CreateContainer(id string, names []string, image, layer, metadat
 | 
			
		||||
		options.Flags["MountLabel"] = mountLabel
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	clayer, err := rlstore.Create(layer, imageTopLayer, nil, options.Flags["MountLabel"].(string), nil, layerOptions, true)
 | 
			
		||||
	clayer, err := rlstore.Create(layer, imageTopLayer, nil, options.Flags["MountLabel"].(string), options.StorageOpt, layerOptions, true)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@ -2830,10 +2831,33 @@ func (s *store) Diff(from, to string, options *DiffOptions) (io.ReadCloser, erro
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// NaiveDiff could cause mounts to happen without a lock, so be safe
 | 
			
		||||
	// and treat the .Diff operation as a Mount.
 | 
			
		||||
	s.graphLock.Lock()
 | 
			
		||||
	defer s.graphLock.Unlock()
 | 
			
		||||
 | 
			
		||||
	modified, err := s.graphLock.Modified()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// We need to make sure the home mount is present when the Mount is done.
 | 
			
		||||
	if modified {
 | 
			
		||||
		s.graphDriver = nil
 | 
			
		||||
		s.layerStore = nil
 | 
			
		||||
		s.graphDriver, err = s.getGraphDriver()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		s.lastLoaded = time.Now()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, s := range append([]ROLayerStore{lstore}, lstores...) {
 | 
			
		||||
		store := s
 | 
			
		||||
		store.RLock()
 | 
			
		||||
		if err := store.ReloadIfChanged(); err != nil {
 | 
			
		||||
			store.Unlock()
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		if store.Exists(to) {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										14
									
								
								vendor/github.com/containers/storage/types/options.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/containers/storage/types/options.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -29,8 +29,9 @@ type tomlConfig struct {
 | 
			
		||||
 | 
			
		||||
// defaultConfigFile path to the system wide storage.conf file
 | 
			
		||||
var (
 | 
			
		||||
	defaultConfigFile    = "/etc/containers/storage.conf"
 | 
			
		||||
	defaultConfigFileSet = false
 | 
			
		||||
	defaultConfigFile         = "/usr/share/containers/storage.conf"
 | 
			
		||||
	defaultOverrideConfigFile = "/etc/containers/storage.conf"
 | 
			
		||||
	defaultConfigFileSet      = false
 | 
			
		||||
	// DefaultStoreOptions is a reasonable default set of options.
 | 
			
		||||
	defaultStoreOptions StoreOptions
 | 
			
		||||
)
 | 
			
		||||
@ -40,7 +41,14 @@ func init() {
 | 
			
		||||
	defaultStoreOptions.GraphRoot = "/var/lib/containers/storage"
 | 
			
		||||
	defaultStoreOptions.GraphDriverName = ""
 | 
			
		||||
 | 
			
		||||
	ReloadConfigurationFileIfNeeded(defaultConfigFile, &defaultStoreOptions)
 | 
			
		||||
	if _, err := os.Stat(defaultOverrideConfigFile); err == nil {
 | 
			
		||||
		ReloadConfigurationFileIfNeeded(defaultOverrideConfigFile, &defaultStoreOptions)
 | 
			
		||||
	} else {
 | 
			
		||||
		if !os.IsNotExist(err) {
 | 
			
		||||
			logrus.Warningf("Attempting to use %s, %v", defaultConfigFile, err)
 | 
			
		||||
		}
 | 
			
		||||
		ReloadConfigurationFileIfNeeded(defaultConfigFile, &defaultStoreOptions)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// defaultStoreOptionsIsolated is an internal implementation detail of DefaultStoreOptions to allow testing.
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user