os: use stringslite.HasPrefix

Change-Id: I791bdfecc6c94ee9dac592d60d95e97182bf0120
Reviewed-on: https://go-review.googlesource.com/c/go/+/582496
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/src/os/file_plan9.go b/src/os/file_plan9.go
index fc9c89f..ef277de 100644
--- a/src/os/file_plan9.go
+++ b/src/os/file_plan9.go
@@ -7,6 +7,7 @@
 import (
 	"internal/bytealg"
 	"internal/poll"
+	"internal/stringslite"
 	"io"
 	"runtime"
 	"sync"
@@ -387,14 +388,9 @@
 	return nil
 }
 
-// hasPrefix from the strings package.
-func hasPrefix(s, prefix string) bool {
-	return len(s) >= len(prefix) && s[0:len(prefix)] == prefix
-}
-
 func rename(oldname, newname string) error {
 	dirname := oldname[:bytealg.LastIndexByteString(oldname, '/')+1]
-	if hasPrefix(newname, dirname) {
+	if stringslite.HasPrefix(newname, dirname) {
 		newname = newname[len(dirname):]
 	} else {
 		return &LinkError{"rename", oldname, newname, ErrInvalid}