Merge pull request #7611 from dcantah/fast-path-userxattr

overlayutils: Add fastpath for userxattr check
This commit is contained in:
Phil Estes 2022-11-01 16:08:34 -04:00 committed by GitHub
commit 740c9335be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -24,6 +24,7 @@ import (
"os" "os"
"path/filepath" "path/filepath"
kernel "github.com/containerd/containerd/contrib/seccomp/kernelversion"
"github.com/containerd/containerd/log" "github.com/containerd/containerd/log"
"github.com/containerd/containerd/mount" "github.com/containerd/containerd/mount"
"github.com/containerd/containerd/pkg/userns" "github.com/containerd/containerd/pkg/userns"
@ -113,10 +114,14 @@ func NeedsUserXAttr(d string) (bool, error) {
return false, nil return false, nil
} }
// TODO: add fast path for kernel >= 5.11 . // Fast path on kernels >= 5.11
// //
// Keep in mind that distro vendors might be going to backport the patch to older kernels. // Keep in mind that distro vendors might be going to backport the patch to older kernels
// So we can't completely remove the check. // so we can't completely remove the "slow path".
fiveDotEleven := kernel.KernelVersion{Kernel: 5, Major: 11}
if ok, err := kernel.GreaterEqualThan(fiveDotEleven); err == nil && ok {
return true, nil
}
tdRoot := filepath.Join(d, "userxattr-check") tdRoot := filepath.Join(d, "userxattr-check")
if err := os.RemoveAll(tdRoot); err != nil { if err := os.RemoveAll(tdRoot); err != nil {