runc/patch/0144-runc-update-skip-devices.patch
bwzhang c42c72d0fe runc: fix the bug when runc failed to update fat container memory value
(cherry picked from commit 60f4c86d10a6abe0ff9af1da3313b11ff4a19a5d)
2023-11-24 10:46:57 +08:00

52 lines
1.6 KiB
Diff

From 7b96ad2cf26044827cd0da53d5a0735a31aeab0a Mon Sep 17 00:00:00 2001
From: TDnorthgarden <tdnorthgarden@gmail.com>
Date: Sat, 7 Oct 2023 15:29:43 +0800
Subject: [PATCH] runc update: skip devices
---
libcontainer/cgroups/fs/devices.go | 2 +-
libcontainer/configs/cgroup_unix.go | 2 ++
update.go | 2 ++
3 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/libcontainer/cgroups/fs/devices.go b/libcontainer/cgroups/fs/devices.go
index 478b5db..799f062 100644
--- a/libcontainer/cgroups/fs/devices.go
+++ b/libcontainer/cgroups/fs/devices.go
@@ -52,7 +52,7 @@ func readCgroupDeviceMap(dir string) (map[string]bool, error) {
}
func (s *DevicesGroup) Set(path string, cgroup *configs.Cgroup) error {
- if system.RunningInUserNS() {
+ if system.RunningInUserNS() || cgroup.Resources.SkipDevices {
return nil
}
diff --git a/libcontainer/configs/cgroup_unix.go b/libcontainer/configs/cgroup_unix.go
index acf0562..618a43d 100644
--- a/libcontainer/configs/cgroup_unix.go
+++ b/libcontainer/configs/cgroup_unix.go
@@ -130,4 +130,6 @@ type Resources struct {
// Set class identifier for container's network packets
NetClsClassid uint32 `json:"net_cls_classid_u"`
+
+ SkipDevices bool `json:"-"`
}
diff --git a/update.go b/update.go
index 226a18a..c929f8f 100644
--- a/update.go
+++ b/update.go
@@ -254,6 +254,8 @@ other options are ignored.
config.Cgroups.Resources.MemorySwap = *r.Memory.Swap
config.Cgroups.Resources.PidsLimit = r.Pids.Limit
+ config.Cgroups.Resources.SkipDevices = true
+
return container.Set(config)
},
}
--
2.27.0