From a9cc88c19f0c8907d7696b47a2b3b251a2ca06df Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 17 Dec 2018 16:56:39 +0100 Subject: pkg/osutil: provide better Rename os.Rename fails for cross-device renaming (e.g. to/from tmpfs). This is quite unpleasant. Provide own version that falls back to copying. --- pkg/build/akaros.go | 2 +- pkg/build/linux.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'pkg/build') diff --git a/pkg/build/akaros.go b/pkg/build/akaros.go index 6ee3d774b..60750028f 100644 --- a/pkg/build/akaros.go +++ b/pkg/build/akaros.go @@ -52,7 +52,7 @@ func (ctx akaros) build(targetArch, vmType, kernelDir, outputDir, compiler, user return err } targetKey := filepath.Join(kernelDir, "kern", "kfs", ".ssh", "authorized_keys") - if err := os.Rename(sshkeyPub, targetKey); err != nil { + if err := osutil.Rename(sshkeyPub, targetKey); err != nil { return err } const init = `#!/bin/bash diff --git a/pkg/build/linux.go b/pkg/build/linux.go index f2bc4e0fe..dbe9cfbb7 100644 --- a/pkg/build/linux.go +++ b/pkg/build/linux.go @@ -71,7 +71,7 @@ func (linux) buildKernel(kernelDir, outputDir, compiler string, config []byte) e } vmlinux := filepath.Join(kernelDir, "vmlinux") outputVmlinux := filepath.Join(outputDir, "obj", "vmlinux") - if err := os.Rename(vmlinux, outputVmlinux); err != nil { + if err := osutil.Rename(vmlinux, outputVmlinux); err != nil { return fmt.Errorf("failed to rename vmlinux: %v", err) } return nil -- cgit mrf-deployment