1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #42201 from AkihiroSuda/annotate-btrfs-error

rootless: btrfs: annotate error with human-readable hint string
This commit is contained in:
Sebastiaan van Stijn 2021-08-11 16:12:59 +02:00 committed by GitHub
commit 343665850e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -26,6 +26,7 @@ import (
"sync"
"unsafe"
"github.com/containerd/containerd/pkg/userns"
"github.com/docker/docker/daemon/graphdriver"
"github.com/docker/docker/pkg/containerfs"
"github.com/docker/docker/pkg/idtools"
@ -600,6 +601,10 @@ func (d *Driver) Remove(id string) error {
if err := subvolDelete(d.subvolumesDir(), id, d.quotaEnabled); err != nil {
if d.quotaEnabled {
// use strings.Contains() rather than errors.Is(), because subvolDelete() does not use %w yet
if userns.RunningInUserNS() && strings.Contains(err.Error(), "operation not permitted") {
err = errors.Wrap(err, `failed to delete subvolume without root (hint: remount btrfs on "user_subvol_rm_allowed" option, or update the kernel to >= 4.18, or change the storage driver to "fuse-overlayfs")`)
}
return err
}
// If quota is not enabled, fallback to rmdir syscall to delete subvolumes.