Merge pull request #1258 from Luap99/netns

pkg/netns: UnmountNS() accept netns path as string
This commit is contained in:
OpenShift Merge Robot 2022-12-09 03:56:36 -05:00 committed by GitHub
commit df2212a903
3 changed files with 8 additions and 9 deletions

View File

@ -109,10 +109,10 @@ var _ = Describe("run CNI", func() {
logrus.SetLevel(logrus.InfoLevel) logrus.SetLevel(logrus.InfoLevel)
_ = os.RemoveAll(cniConfDir) _ = os.RemoveAll(cniConfDir)
_ = netns.UnmountNS(netNSTest) _ = netns.UnmountNS(netNSTest.Path())
_ = netNSTest.Close() _ = netNSTest.Close()
_ = netns.UnmountNS(netNSContainer) _ = netns.UnmountNS(netNSContainer.Path())
_ = netNSContainer.Close() _ = netNSContainer.Close()
}) })

View File

@ -108,10 +108,10 @@ var _ = Describe("run netavark", func() {
logrus.SetLevel(logrus.InfoLevel) logrus.SetLevel(logrus.InfoLevel)
_ = os.RemoveAll(confDir) _ = os.RemoveAll(confDir)
_ = netns.UnmountNS(netNSTest) _ = netns.UnmountNS(netNSTest.Path())
_ = netNSTest.Close() _ = netNSTest.Close()
_ = netns.UnmountNS(netNSContainer) _ = netns.UnmountNS(netNSContainer.Path())
_ = netNSContainer.Close() _ = netNSContainer.Close()
_ = os.Unsetenv("NETAVARK_FW") _ = os.Unsetenv("NETAVARK_FW")
@ -286,7 +286,7 @@ var _ = Describe("run netavark", func() {
netNSContainer2, err := netns.NewNS() netNSContainer2, err := netns.NewNS()
Expect(err).ToNot(HaveOccurred()) Expect(err).ToNot(HaveOccurred())
defer netns.UnmountNS(netNSContainer2) //nolint:errcheck defer netns.UnmountNS(netNSContainer2.Path()) //nolint:errcheck
defer netNSContainer2.Close() //nolint:errcheck defer netNSContainer2.Close() //nolint:errcheck
res, err = libpodNet.Setup(netNSContainer2.Path(), setupOpts2) res, err = libpodNet.Setup(netNSContainer2.Path(), setupOpts2)

View File

@ -179,14 +179,13 @@ func NewNSWithName(name string) (ns.NetNS, error) {
return ns.GetNS(nsPath) return ns.GetNS(nsPath)
} }
// UnmountNS unmounts the NS held by the netns object // UnmountNS unmounts the given netns path
func UnmountNS(netns ns.NetNS) error { func UnmountNS(nsPath string) error {
nsRunDir, err := GetNSRunDir() nsRunDir, err := GetNSRunDir()
if err != nil { if err != nil {
return err return err
} }
nsPath := netns.Path()
// Only unmount if it's been bind-mounted (don't touch namespaces in /proc...) // Only unmount if it's been bind-mounted (don't touch namespaces in /proc...)
if strings.HasPrefix(nsPath, nsRunDir) { if strings.HasPrefix(nsPath, nsRunDir) {
if err := unix.Unmount(nsPath, unix.MNT_DETACH); err != nil { if err := unix.Unmount(nsPath, unix.MNT_DETACH); err != nil {