mirror of
				https://github.com/containers/podman.git
				synced 2025-11-04 08:56:05 +08:00 
			
		
		
		
	vendor in latest containers/(storage,common,image)
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
		
							
								
								
									
										18
									
								
								vendor/github.com/containers/storage/Makefile
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/containers/storage/Makefile
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -69,44 +69,44 @@ local-cross: ## cross build the binaries for arm, darwin, and\nfreebsd
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
cross: ## cross build the binaries for arm, darwin, and\nfreebsd using VMs
 | 
			
		||||
	$(RUNINVM) make local-$@
 | 
			
		||||
	$(RUNINVM) $(MAKE) local-$@
 | 
			
		||||
 | 
			
		||||
docs: install.tools ## build the docs on the host
 | 
			
		||||
	$(MAKE) -C docs docs
 | 
			
		||||
 | 
			
		||||
gccgo: ## build using gccgo using VMs
 | 
			
		||||
	$(RUNINVM) make local-$@
 | 
			
		||||
	$(RUNINVM) $(MAKE) local-$@
 | 
			
		||||
 | 
			
		||||
test: local-binary ## build the binaries and run the tests using VMs
 | 
			
		||||
	$(RUNINVM) make local-binary local-cross local-test-unit local-test-integration
 | 
			
		||||
	$(RUNINVM) $(MAKE) local-binary local-cross local-test-unit local-test-integration
 | 
			
		||||
 | 
			
		||||
local-test-unit: local-binary ## run the unit tests on the host (requires\nsuperuser privileges)
 | 
			
		||||
	@$(GO) test $(MOD_VENDOR) $(BUILDFLAGS) $(TESTFLAGS) $(shell $(GO) list ./... | grep -v ^$(PACKAGE)/vendor)
 | 
			
		||||
 | 
			
		||||
test-unit: local-binary ## run the unit tests using VMs
 | 
			
		||||
	$(RUNINVM) make local-$@
 | 
			
		||||
	$(RUNINVM) $(MAKE) local-$@
 | 
			
		||||
 | 
			
		||||
local-test-integration: local-binary ## run the integration tests on the host (requires\nsuperuser privileges)
 | 
			
		||||
	@cd tests; ./test_runner.bash
 | 
			
		||||
 | 
			
		||||
test-integration: local-binary ## run the integration tests using VMs
 | 
			
		||||
	$(RUNINVM) make local-$@
 | 
			
		||||
	$(RUNINVM) $(MAKE) local-$@
 | 
			
		||||
 | 
			
		||||
local-validate: ## validate DCO and gofmt on the host
 | 
			
		||||
	@./hack/git-validation.sh
 | 
			
		||||
	@./hack/gofmt.sh
 | 
			
		||||
 | 
			
		||||
validate: ## validate DCO, gofmt, ./pkg/ isolation, golint,\ngo vet and vendor using VMs
 | 
			
		||||
	$(RUNINVM) make local-$@
 | 
			
		||||
	$(RUNINVM) $(MAKE) local-$@
 | 
			
		||||
 | 
			
		||||
install.tools:
 | 
			
		||||
	make -C tests/tools
 | 
			
		||||
	$(MAKE) -C tests/tools
 | 
			
		||||
 | 
			
		||||
$(FFJSON):
 | 
			
		||||
	make -C tests/tools
 | 
			
		||||
	$(MAKE) -C tests/tools
 | 
			
		||||
 | 
			
		||||
install.docs: docs
 | 
			
		||||
	make -C docs install
 | 
			
		||||
	$(MAKE) -C docs install
 | 
			
		||||
 | 
			
		||||
install: install.docs
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										29
									
								
								vendor/github.com/containers/storage/drivers/driver_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/containers/storage/drivers/driver_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -1,16 +1,45 @@
 | 
			
		||||
package graphdriver
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"golang.org/x/sys/unix"
 | 
			
		||||
 | 
			
		||||
	"github.com/containers/storage/pkg/mount"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	// FsMagicZfs filesystem id for Zfs
 | 
			
		||||
	FsMagicZfs = FsMagic(0x2fc12fc1)
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	// Slice of drivers that should be used in an order
 | 
			
		||||
	priority = []string{
 | 
			
		||||
		"zfs",
 | 
			
		||||
		"vfs",
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// FsNames maps filesystem id to name of the filesystem.
 | 
			
		||||
	FsNames = map[FsMagic]string{
 | 
			
		||||
		FsMagicZfs: "zfs",
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// NewDefaultChecker returns a check that parses /proc/mountinfo to check
 | 
			
		||||
// if the specified path is mounted.
 | 
			
		||||
// No-op on FreeBSD.
 | 
			
		||||
func NewDefaultChecker() Checker {
 | 
			
		||||
	return &defaultChecker{}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type defaultChecker struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *defaultChecker) IsMounted(path string) bool {
 | 
			
		||||
	m, _ := mount.Mounted(path)
 | 
			
		||||
	return m
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Mounted checks if the given path is mounted as the fs type
 | 
			
		||||
func Mounted(fsType FsMagic, mountPath string) (bool, error) {
 | 
			
		||||
	var buf unix.Statfs_t
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/containers/storage/drivers/register/register_zfs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/containers/storage/drivers/register/register_zfs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -1,4 +1,4 @@
 | 
			
		||||
// +build !exclude_graphdriver_zfs,linux !exclude_graphdriver_zfs,freebsd, solaris
 | 
			
		||||
// +build !exclude_graphdriver_zfs,linux !exclude_graphdriver_zfs,freebsd solaris
 | 
			
		||||
 | 
			
		||||
package register
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/containers/storage/drivers/zfs/zfs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/containers/storage/drivers/zfs/zfs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -344,7 +344,7 @@ func (d *Driver) create(id, parent string, opts *graphdriver.CreateOpts) error {
 | 
			
		||||
				return errors.Wrap(err, "error creating zfs mount")
 | 
			
		||||
			}
 | 
			
		||||
			defer func() {
 | 
			
		||||
				if err := unix.Unmount(mountpoint, unix.MNT_DETACH); err != nil {
 | 
			
		||||
				if err := detachUnmount(mountpoint); err != nil {
 | 
			
		||||
					logrus.Warnf("Failed to unmount %s mount %s: %v", id, mountpoint, err)
 | 
			
		||||
				}
 | 
			
		||||
			}()
 | 
			
		||||
@ -483,7 +483,7 @@ func (d *Driver) Put(id string) error {
 | 
			
		||||
 | 
			
		||||
	logger.Debugf(`unmount("%s")`, mountpoint)
 | 
			
		||||
 | 
			
		||||
	if err := unix.Unmount(mountpoint, unix.MNT_DETACH); err != nil {
 | 
			
		||||
	if err := detachUnmount(mountpoint); err != nil {
 | 
			
		||||
		logger.Warnf("Failed to unmount %s mount %s: %v", id, mountpoint, err)
 | 
			
		||||
	}
 | 
			
		||||
	if err := unix.Rmdir(mountpoint); err != nil && !os.IsNotExist(err) {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/containers/storage/drivers/zfs/zfs_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/containers/storage/drivers/zfs/zfs_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -37,3 +37,8 @@ func getMountpoint(id string) string {
 | 
			
		||||
 | 
			
		||||
	return id[:maxlen]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func detachUnmount(mountpoint string) error {
 | 
			
		||||
	// FreeBSD doesn't have an equivalent to MNT_DETACH
 | 
			
		||||
	return unix.Unmount(mountpoint, 0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/containers/storage/drivers/zfs/zfs_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/containers/storage/drivers/zfs/zfs_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -4,6 +4,7 @@ import (
 | 
			
		||||
	graphdriver "github.com/containers/storage/drivers"
 | 
			
		||||
	"github.com/pkg/errors"
 | 
			
		||||
	"github.com/sirupsen/logrus"
 | 
			
		||||
	"golang.org/x/sys/unix"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func checkRootdirFs(rootDir string) error {
 | 
			
		||||
@ -27,3 +28,7 @@ func checkRootdirFs(rootDir string) error {
 | 
			
		||||
func getMountpoint(id string) string {
 | 
			
		||||
	return id
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func detachUnmount(mountpoint string) error {
 | 
			
		||||
	return unix.Unmount(mountpoint, unix.MNT_DETACH)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/github.com/containers/storage/layers.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/containers/storage/layers.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -683,7 +683,7 @@ func (r *layerStore) PutAdditionalLayer(id string, parentLayer *Layer, names []s
 | 
			
		||||
		r.bycompressedsum[layer.CompressedDigest] = append(r.bycompressedsum[layer.CompressedDigest], layer.ID)
 | 
			
		||||
	}
 | 
			
		||||
	if layer.UncompressedDigest != "" {
 | 
			
		||||
		r.byuncompressedsum[layer.CompressedDigest] = append(r.byuncompressedsum[layer.CompressedDigest], layer.ID)
 | 
			
		||||
		r.byuncompressedsum[layer.UncompressedDigest] = append(r.byuncompressedsum[layer.UncompressedDigest], layer.ID)
 | 
			
		||||
	}
 | 
			
		||||
	if err := r.Save(); err != nil {
 | 
			
		||||
		r.driver.Remove(id)
 | 
			
		||||
@ -866,6 +866,14 @@ func (r *layerStore) Put(id string, parentLayer *Layer, names []string, mountLab
 | 
			
		||||
				return nil, -1, err
 | 
			
		||||
			}
 | 
			
		||||
			delete(layer.Flags, incompleteFlag)
 | 
			
		||||
		} else {
 | 
			
		||||
			// applyDiffWithOptions in the `diff != nil` case handles this bit for us
 | 
			
		||||
			if layer.CompressedDigest != "" {
 | 
			
		||||
				r.bycompressedsum[layer.CompressedDigest] = append(r.bycompressedsum[layer.CompressedDigest], layer.ID)
 | 
			
		||||
			}
 | 
			
		||||
			if layer.UncompressedDigest != "" {
 | 
			
		||||
				r.byuncompressedsum[layer.UncompressedDigest] = append(r.byuncompressedsum[layer.UncompressedDigest], layer.ID)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		err = r.Save()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										205
									
								
								vendor/github.com/containers/storage/storage.conf-freebsd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										205
									
								
								vendor/github.com/containers/storage/storage.conf-freebsd
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,205 @@
 | 
			
		||||
# This file is is the configuration file for all tools
 | 
			
		||||
# that use the containers/storage library. The storage.conf file
 | 
			
		||||
# overrides all other storage.conf files. Container engines using the
 | 
			
		||||
# container/storage library do not inherit fields from other storage.conf
 | 
			
		||||
# files.
 | 
			
		||||
#
 | 
			
		||||
#  Note: The storage.conf file overrides other storage.conf files based on this precedence:
 | 
			
		||||
#      /usr/containers/storage.conf
 | 
			
		||||
#      /etc/containers/storage.conf
 | 
			
		||||
#      $HOME/.config/containers/storage.conf
 | 
			
		||||
#      $XDG_CONFIG_HOME/containers/storage.conf (If XDG_CONFIG_HOME is set)
 | 
			
		||||
# See man 5 containers-storage.conf for more information
 | 
			
		||||
# The "container storage" table contains all of the server options.
 | 
			
		||||
[storage]
 | 
			
		||||
 | 
			
		||||
# Default Storage Driver, Must be set for proper operation.
 | 
			
		||||
driver = "zfs"
 | 
			
		||||
 | 
			
		||||
# Temporary storage location
 | 
			
		||||
runroot = "/var/run/containers/storage"
 | 
			
		||||
 | 
			
		||||
# Primary Read/Write location of container storage
 | 
			
		||||
graphroot = "/var/db/containers/storage"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Storage path for rootless users
 | 
			
		||||
#
 | 
			
		||||
# rootless_storage_path = "$HOME/.local/share/containers/storage"
 | 
			
		||||
 | 
			
		||||
[storage.options]
 | 
			
		||||
# Storage options to be passed to underlying storage drivers
 | 
			
		||||
 | 
			
		||||
# AdditionalImageStores is used to pass paths to additional Read/Only image stores
 | 
			
		||||
# Must be comma separated list.
 | 
			
		||||
additionalimagestores = [
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
# Remap-UIDs/GIDs is the mapping from UIDs/GIDs as they should appear inside of
 | 
			
		||||
# a container, to the UIDs/GIDs as they should appear outside of the container,
 | 
			
		||||
# and the length of the range of UIDs/GIDs.  Additional mapped sets can be
 | 
			
		||||
# listed and will be heeded by libraries, but there are limits to the number of
 | 
			
		||||
# mappings which the kernel will allow when you later attempt to run a
 | 
			
		||||
# container.
 | 
			
		||||
#
 | 
			
		||||
# remap-uids = 0:1668442479:65536
 | 
			
		||||
# remap-gids = 0:1668442479:65536
 | 
			
		||||
 | 
			
		||||
# Remap-User/Group is a user name which can be used to look up one or more UID/GID
 | 
			
		||||
# ranges in the /etc/subuid or /etc/subgid file.  Mappings are set up starting
 | 
			
		||||
# with an in-container ID of 0 and then a host-level ID taken from the lowest
 | 
			
		||||
# range that matches the specified name, and using the length of that range.
 | 
			
		||||
# Additional ranges are then assigned, using the ranges which specify the
 | 
			
		||||
# lowest host-level IDs first, to the lowest not-yet-mapped in-container ID,
 | 
			
		||||
# until all of the entries have been used for maps.
 | 
			
		||||
#
 | 
			
		||||
# remap-user = "containers"
 | 
			
		||||
# remap-group = "containers"
 | 
			
		||||
 | 
			
		||||
# Root-auto-userns-user is a user name which can be used to look up one or more UID/GID
 | 
			
		||||
# ranges in the /etc/subuid and /etc/subgid file.  These ranges will be partitioned
 | 
			
		||||
# to containers configured to create automatically a user namespace.  Containers
 | 
			
		||||
# configured to automatically create a user namespace can still overlap with containers
 | 
			
		||||
# having an explicit mapping set.
 | 
			
		||||
# This setting is ignored when running as rootless.
 | 
			
		||||
# root-auto-userns-user = "storage"
 | 
			
		||||
#
 | 
			
		||||
# Auto-userns-min-size is the minimum size for a user namespace created automatically.
 | 
			
		||||
# auto-userns-min-size=1024
 | 
			
		||||
#
 | 
			
		||||
# Auto-userns-max-size is the minimum size for a user namespace created automatically.
 | 
			
		||||
# auto-userns-max-size=65536
 | 
			
		||||
 | 
			
		||||
[storage.options.overlay]
 | 
			
		||||
# ignore_chown_errors can be set to allow a non privileged user running with
 | 
			
		||||
# a single UID within a user namespace to run containers. The user can pull
 | 
			
		||||
# and use any image even those with multiple uids.  Note multiple UIDs will be
 | 
			
		||||
# squashed down to the default uid in the container.  These images will have no
 | 
			
		||||
# separation between the users in the container. Only supported for the overlay
 | 
			
		||||
# and vfs drivers.
 | 
			
		||||
#ignore_chown_errors = "false"
 | 
			
		||||
 | 
			
		||||
# Inodes is used to set a maximum inodes of the container image.
 | 
			
		||||
# inodes = ""
 | 
			
		||||
 | 
			
		||||
# Path to an helper program to use for mounting the file system instead of mounting it
 | 
			
		||||
# directly.
 | 
			
		||||
#mount_program = "/usr/bin/fuse-overlayfs"
 | 
			
		||||
 | 
			
		||||
# mountopt specifies comma separated list of extra mount options
 | 
			
		||||
mountopt = "nodev"
 | 
			
		||||
 | 
			
		||||
# Set to skip a PRIVATE bind mount on the storage home directory.
 | 
			
		||||
# skip_mount_home = "false"
 | 
			
		||||
 | 
			
		||||
# Size is used to set a maximum size of the container image.
 | 
			
		||||
# size = ""
 | 
			
		||||
 | 
			
		||||
# ForceMask specifies the permissions mask that is used for new files and
 | 
			
		||||
# directories.
 | 
			
		||||
#
 | 
			
		||||
# The values "shared" and "private" are accepted.
 | 
			
		||||
# Octal permission masks are also accepted.
 | 
			
		||||
#
 | 
			
		||||
#  "": No value specified.
 | 
			
		||||
#     All files/directories, get set with the permissions identified within the
 | 
			
		||||
#     image.
 | 
			
		||||
#  "private": it is equivalent to 0700.
 | 
			
		||||
#     All files/directories get set with 0700 permissions.  The owner has rwx
 | 
			
		||||
#     access to the files. No other users on the system can access the files.
 | 
			
		||||
#     This setting could be used with networked based homedirs.
 | 
			
		||||
#  "shared": it is equivalent to 0755.
 | 
			
		||||
#     The owner has rwx access to the files and everyone else can read, access
 | 
			
		||||
#     and execute them. This setting is useful for sharing containers storage
 | 
			
		||||
#     with other users.  For instance have a storage owned by root but shared
 | 
			
		||||
#     to rootless users as an additional store.
 | 
			
		||||
#     NOTE:  All files within the image are made readable and executable by any
 | 
			
		||||
#     user on the system. Even /etc/shadow within your image is now readable by
 | 
			
		||||
#     any user.
 | 
			
		||||
#
 | 
			
		||||
#   OCTAL: Users can experiment with other OCTAL Permissions.
 | 
			
		||||
#
 | 
			
		||||
#  Note: The force_mask Flag is an experimental feature, it could change in the
 | 
			
		||||
#  future.  When "force_mask" is set the original permission mask is stored in
 | 
			
		||||
#  the "user.containers.override_stat" xattr and the "mount_program" option must
 | 
			
		||||
#  be specified. Mount programs like "/usr/bin/fuse-overlayfs" present the
 | 
			
		||||
#  extended attribute permissions to processes within containers rather then the
 | 
			
		||||
#  "force_mask"  permissions.
 | 
			
		||||
#
 | 
			
		||||
# force_mask = ""
 | 
			
		||||
 | 
			
		||||
[storage.options.thinpool]
 | 
			
		||||
# Storage Options for thinpool
 | 
			
		||||
 | 
			
		||||
# autoextend_percent determines the amount by which pool needs to be
 | 
			
		||||
# grown. This is specified in terms of % of pool size. So a value of 20 means
 | 
			
		||||
# that when threshold is hit, pool will be grown by 20% of existing
 | 
			
		||||
# pool size.
 | 
			
		||||
# autoextend_percent = "20"
 | 
			
		||||
 | 
			
		||||
# autoextend_threshold determines the pool extension threshold in terms
 | 
			
		||||
# of percentage of pool size. For example, if threshold is 60, that means when
 | 
			
		||||
# pool is 60% full, threshold has been hit.
 | 
			
		||||
# autoextend_threshold = "80"
 | 
			
		||||
 | 
			
		||||
# basesize specifies the size to use when creating the base device, which
 | 
			
		||||
# limits the size of images and containers.
 | 
			
		||||
# basesize = "10G"
 | 
			
		||||
 | 
			
		||||
# blocksize specifies a custom blocksize to use for the thin pool.
 | 
			
		||||
# blocksize="64k"
 | 
			
		||||
 | 
			
		||||
# directlvm_device specifies a custom block storage device to use for the
 | 
			
		||||
# thin pool. Required if you setup devicemapper.
 | 
			
		||||
# directlvm_device = ""
 | 
			
		||||
 | 
			
		||||
# directlvm_device_force wipes device even if device already has a filesystem.
 | 
			
		||||
# directlvm_device_force = "True"
 | 
			
		||||
 | 
			
		||||
# fs specifies the filesystem type to use for the base device.
 | 
			
		||||
# fs="xfs"
 | 
			
		||||
 | 
			
		||||
# log_level sets the log level of devicemapper.
 | 
			
		||||
# 0: LogLevelSuppress 0 (Default)
 | 
			
		||||
# 2: LogLevelFatal
 | 
			
		||||
# 3: LogLevelErr
 | 
			
		||||
# 4: LogLevelWarn
 | 
			
		||||
# 5: LogLevelNotice
 | 
			
		||||
# 6: LogLevelInfo
 | 
			
		||||
# 7: LogLevelDebug
 | 
			
		||||
# log_level = "7"
 | 
			
		||||
 | 
			
		||||
# min_free_space specifies the min free space percent in a thin pool require for
 | 
			
		||||
# new device creation to succeed. Valid values are from 0% - 99%.
 | 
			
		||||
# Value 0% disables
 | 
			
		||||
# min_free_space = "10%"
 | 
			
		||||
 | 
			
		||||
# mkfsarg specifies extra mkfs arguments to be used when creating the base
 | 
			
		||||
# device.
 | 
			
		||||
# mkfsarg = ""
 | 
			
		||||
 | 
			
		||||
# metadata_size is used to set the `pvcreate --metadatasize` options when
 | 
			
		||||
# creating thin devices. Default is 128k
 | 
			
		||||
# metadata_size = ""
 | 
			
		||||
 | 
			
		||||
# Size is used to set a maximum size of the container image.
 | 
			
		||||
# size = ""
 | 
			
		||||
 | 
			
		||||
# use_deferred_removal marks devicemapper block device for deferred removal.
 | 
			
		||||
# If the thinpool is in use when the driver attempts to remove it, the driver
 | 
			
		||||
# tells the kernel to remove it as soon as possible. Note this does not free
 | 
			
		||||
# up the disk space, use deferred deletion to fully remove the thinpool.
 | 
			
		||||
# use_deferred_removal = "True"
 | 
			
		||||
 | 
			
		||||
# use_deferred_deletion marks thinpool device for deferred deletion.
 | 
			
		||||
# If the device is busy when the driver attempts to delete it, the driver
 | 
			
		||||
# will attempt to delete device every 30 seconds until successful.
 | 
			
		||||
# If the program using the driver exits, the driver will continue attempting
 | 
			
		||||
# to cleanup the next time the driver is used. Deferred deletion permanently
 | 
			
		||||
# deletes the device and all data stored in device will be lost.
 | 
			
		||||
# use_deferred_deletion = "True"
 | 
			
		||||
 | 
			
		||||
# xfs_nospace_max_retries specifies the maximum number of retries XFS should
 | 
			
		||||
# attempt to complete IO when ENOSPC (no space) error is returned by
 | 
			
		||||
# underlying storage device.
 | 
			
		||||
# xfs_nospace_max_retries = "0"
 | 
			
		||||
		Reference in New Issue
	
	Block a user