quota_linux.go 836 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package vfs // import "github.com/docker/docker/daemon/graphdriver/vfs"
  2. import (
  3. "context"
  4. "github.com/containerd/log"
  5. "github.com/docker/docker/quota"
  6. )
  7. type driverQuota struct {
  8. quotaCtl *quota.Control
  9. quotaOpt quota.Quota
  10. }
  11. func setupDriverQuota(driver *Driver) {
  12. if quotaCtl, err := quota.NewControl(driver.home); err == nil {
  13. driver.quotaCtl = quotaCtl
  14. } else if err != quota.ErrQuotaNotSupported {
  15. log.G(context.TODO()).Warnf("Unable to setup quota: %v\n", err)
  16. }
  17. }
  18. func (d *Driver) setQuotaOpt(size uint64) error {
  19. d.quotaOpt.Size = size
  20. return nil
  21. }
  22. func (d *Driver) getQuotaOpt() uint64 {
  23. return d.quotaOpt.Size
  24. }
  25. func (d *Driver) setupQuota(dir string, size uint64) error {
  26. return d.quotaCtl.SetQuota(dir, quota.Quota{Size: size})
  27. }
  28. func (d *Driver) quotaSupported() bool {
  29. return d.quotaCtl != nil
  30. }