mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #35827 from kolyshkin/vfs-quota
Fix VFS vs quota regression
This commit is contained in:
commit
3e1df952b7
3 changed files with 16 additions and 11 deletions
|
@ -350,11 +350,17 @@ func makeBackingFsDev(home string) (string, error) {
|
||||||
backingFsBlockDev := path.Join(home, "backingFsBlockDev")
|
backingFsBlockDev := path.Join(home, "backingFsBlockDev")
|
||||||
// Re-create just in case someone copied the home directory over to a new device
|
// Re-create just in case someone copied the home directory over to a new device
|
||||||
unix.Unlink(backingFsBlockDev)
|
unix.Unlink(backingFsBlockDev)
|
||||||
if err := unix.Mknod(backingFsBlockDev, unix.S_IFBLK|0600, int(stat.Dev)); err != nil {
|
err := unix.Mknod(backingFsBlockDev, unix.S_IFBLK|0600, int(stat.Dev))
|
||||||
|
switch err {
|
||||||
|
case nil:
|
||||||
|
return backingFsBlockDev, nil
|
||||||
|
|
||||||
|
case unix.ENOSYS:
|
||||||
|
return "", ErrQuotaNotSupported
|
||||||
|
|
||||||
|
default:
|
||||||
return "", fmt.Errorf("Failed to mknod %s: %v", backingFsBlockDev, err)
|
return "", fmt.Errorf("Failed to mknod %s: %v", backingFsBlockDev, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return backingFsBlockDev, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func hasQuotaSupport(backingFsBlockDev string) (bool, error) {
|
func hasQuotaSupport(backingFsBlockDev string) (bool, error) {
|
||||||
|
|
|
@ -35,9 +35,7 @@ func Init(home string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := setupDriverQuota(d); err != nil {
|
setupDriverQuota(d)
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return graphdriver.NewNaiveDiffDriver(d, uidMaps, gidMaps), nil
|
return graphdriver.NewNaiveDiffDriver(d, uidMaps, gidMaps), nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +1,20 @@
|
||||||
package vfs
|
package vfs
|
||||||
|
|
||||||
import "github.com/docker/docker/daemon/graphdriver/quota"
|
import (
|
||||||
|
"github.com/docker/docker/daemon/graphdriver/quota"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
)
|
||||||
|
|
||||||
type driverQuota struct {
|
type driverQuota struct {
|
||||||
quotaCtl *quota.Control
|
quotaCtl *quota.Control
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupDriverQuota(driver *Driver) error {
|
func setupDriverQuota(driver *Driver) {
|
||||||
if quotaCtl, err := quota.NewControl(driver.home); err == nil {
|
if quotaCtl, err := quota.NewControl(driver.home); err == nil {
|
||||||
driver.quotaCtl = quotaCtl
|
driver.quotaCtl = quotaCtl
|
||||||
} else if err != quota.ErrQuotaNotSupported {
|
} else if err != quota.ErrQuotaNotSupported {
|
||||||
return err
|
logrus.Warnf("Unable to setup quota: %v\n", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) setupQuota(dir string, size uint64) error {
|
func (d *Driver) setupQuota(dir string, size uint64) error {
|
||||||
|
|
Loading…
Add table
Reference in a new issue