From: Brad Fitzpatrick Date: Thu, 18 May 2017 22:50:35 +0000 (+0000) Subject: os: add some comments and remove an unused variable in rename func X-Git-Tag: go1.9beta1~219 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=ca598e3cd4ffa1d318dd997987fe695b93cae539;p=gostls13.git os: add some comments and remove an unused variable in rename func This slightly clarifies the just-submitted CL 40577. Updates #19647 Change-Id: I5584ad0e1abbc31796e3e5752351857f2a13d6d7 Reviewed-on: https://go-review.googlesource.com/43625 Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor --- diff --git a/src/os/file_unix.go b/src/os/file_unix.go index f790b6e910..7f5c84f4bd 100644 --- a/src/os/file_unix.go +++ b/src/os/file_unix.go @@ -20,12 +20,14 @@ func fixLongPath(path string) string { func rename(oldname, newname string) error { fi, err := Lstat(newname) if err == nil && fi.IsDir() { - // if we cannot stat oldname we should - // return that error in favor of EEXIST - fi, err = Lstat(oldname) - if err != nil { - if pErr, ok := err.(*PathError); ok { - err = pErr.Err + // There are two independent errors this function can return: + // one for a bad oldname, and one for a bad newname. + // At this point we've determined the newname is bad. + // But just in case oldname is also bad, prioritize returning + // the oldname error because that's what we did historically. + if _, err := Lstat(oldname); err != nil { + if pe, ok := err.(*PathError); ok { + err = pe.Err } return &LinkError{"rename", oldname, newname, err} }