This patch adds the capability for the VFS graphdriver to use XFS project quotas. It reuses the existing quota management code that was created by overlay2 on XFS. It doesn't rely on a filesystem whitelist, but instead the quota-capability detection code. Signed-off-by: Sargun Dhillon <sargun@sargun.me> Upstream-commit: 7a1618ced359a3ac921d8a05903d62f544ff17d0 Component: engine
28 lines
554 B
Go
28 lines
554 B
Go
// +build linux
|
|
|
|
package vfs
|
|
|
|
import "github.com/docker/docker/daemon/graphdriver/quota"
|
|
|
|
type driverQuota struct {
|
|
quotaCtl *quota.Control
|
|
}
|
|
|
|
func setupDriverQuota(driver *Driver) error {
|
|
if quotaCtl, err := quota.NewControl(driver.home); err == nil {
|
|
driver.quotaCtl = quotaCtl
|
|
} else if err != quota.ErrQuotaNotSupported {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (d *Driver) setupQuota(dir string, size uint64) error {
|
|
return d.quotaCtl.SetQuota(dir, quota.Quota{Size: size})
|
|
}
|
|
|
|
func (d *Driver) quotaSupported() bool {
|
|
return d.quotaCtl != nil
|
|
}
|