From eb2c74142fd19a79b3f237334c7384d5167b1b46 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 26 Jan 2016 17:36:05 -0800 Subject: [PATCH] unix: add flags parameter to Unlinkat The flags parameter was added in https://golang.org/cl/7917. In that CL the reviewers discussed adding UnlinkAt and changing Unlinkat, and opted for the latter. Unfortunately, I then undid that in https://golang.org/cl/10032, which was a backport of (among others) https://golang.org/cl/5837. I didn't notice that in the syscall package 5837 removed Unlinkat with two parameters, but the port to the x/sys/unix package removed Unlinkat with three parameters. Argh. This CL effectively restores 7917, by adding the parameter back. Fixes golang/go#9923. Change-Id: I8fe218ac637d0eb0346b63b596666671374bd19f Reviewed-on: https://go-review.googlesource.com/18981 Reviewed-by: Rob Pike --- unix/syscall_linux.go | 4 ++-- unix/syscall_solaris.go | 2 +- unix/zsyscall_solaris_amd64.go | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/unix/syscall_linux.go b/unix/syscall_linux.go index d3ee5d2c..5048e563 100644 --- a/unix/syscall_linux.go +++ b/unix/syscall_linux.go @@ -86,8 +86,8 @@ func Unlink(path string) error { //sys unlinkat(dirfd int, path string, flags int) (err error) -func Unlinkat(dirfd int, path string) error { - return unlinkat(dirfd, path, 0) +func Unlinkat(dirfd int, path string, flags int) error { + return unlinkat(dirfd, path, flags) } //sys utimes(path string, times *[2]Timeval) (err error) diff --git a/unix/syscall_solaris.go b/unix/syscall_solaris.go index 00837326..eb489b15 100644 --- a/unix/syscall_solaris.go +++ b/unix/syscall_solaris.go @@ -649,7 +649,7 @@ func IoctlGetTermio(fd int, req int) (*Termio, error) { //sysnb Uname(buf *Utsname) (err error) //sys Unmount(target string, flags int) (err error) = libc.umount //sys Unlink(path string) (err error) -//sys Unlinkat(dirfd int, path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) //sys Ustat(dev int, ubuf *Ustat_t) (err error) //sys Utime(path string, buf *Utimbuf) (err error) //sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.bind diff --git a/unix/zsyscall_solaris_amd64.go b/unix/zsyscall_solaris_amd64.go index 8d2a8365..43264278 100644 --- a/unix/zsyscall_solaris_amd64.go +++ b/unix/zsyscall_solaris_amd64.go @@ -1401,13 +1401,13 @@ func Unlink(path string) (err error) { return } -func Unlinkat(dirfd int, path string) (err error) { +func Unlinkat(dirfd int, path string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) if err != nil { return } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0) + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0) use(unsafe.Pointer(_p0)) if e1 != 0 { err = e1