aboutsummaryrefslogtreecommitdiff
path: root/src/os/stat_plan9.go
AgeCommit message (Collapse)Author
2025-02-13os: consolidate and clarify File.Fd docsIan Lance Taylor
Change-Id: Id062b969fe7d6908a0797b36a4a379e4d46ba557 Reviewed-on: https://go-review.googlesource.com/c/go/+/648516 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Damien Neil <dneil@google.com>
2022-10-08os: use poll.fdMutex for Plan 9 filesIan Lance Taylor
This permits us to safely support concurrent access to files on Plan 9. Concurrent access was already safe on other systems. This does introduce a change: if one goroutine calls a blocking read on a pipe, and another goroutine closes the pipe, then before this CL the close would occur. Now the close will be delayed until the blocking read completes. Also add tests that concurrent I/O and Close on a pipe are OK. For #50436 For #56043 Change-Id: I969c869ea3b8c5c2f2ef319e441a56a3c64e7bf5 Reviewed-on: https://go-review.googlesource.com/c/go/+/438347 Reviewed-by: Bryan Mills <bcmills@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: David du Colombier <0intro@gmail.com> Run-TryBot: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
2021-12-13all: gofmt -w -r 'interface{} -> any' srcRuss Cox
And then revert the bootstrap cmd directories and certain testdata. And adjust tests as needed. Not reverting the changes in std that are bootstrapped, because some of those changes would appear in API docs, and we want to use any consistently. Instead, rewrite 'any' to 'interface{}' in cmd/dist for those directories when preparing the bootstrap copy. A few files changed as a result of running gofmt -w not because of interface{} -> any but because they hadn't been updated for the new //go:build lines. Fixes #49884. Change-Id: Ie8045cba995f65bd79c694ec77a1b3d1fe01bb09 Reviewed-on: https://go-review.googlesource.com/c/go/+/368254 Trust: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org>
2020-10-20os: use keyed literals for PathErrorRuss Cox
Necessary to move PathError to io/fs. For #41190. Change-Id: I05e87675f38a22f0570d4366b751b6169f7a1b13 Reviewed-on: https://go-review.googlesource.com/c/go/+/243900 Trust: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Rob Pike <r@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2020-10-20os: add File.ReadDir method and DirEntry typeRuss Cox
ReadDir provides a portable, efficient way to read a directory and discover the type of directory entries. This enables a more efficient file system walk, yet to be added. See #41467 for the proposal review for the API. Fixes #41467. Change-Id: I461a526793ae46df48821aa448b04f1705546739 Reviewed-on: https://go-review.googlesource.com/c/go/+/261540 Trust: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Rob Pike <r@golang.org>
2018-03-27os: fix TestDevNullFile on Plan 9David du Colombier
CL 102457 added TestDevNullFile. However, this test is failing on Plan 9, because it checks that /dev/null is a character device while there are no special files on Plan 9. We fix this issue by changing Stat to consider all files served by the console device (#c) as character devices. Fixes #24534. Change-Id: I1c60cdf25770358b908790b3fb71910fa914dec0 Reviewed-on: https://go-review.googlesource.com/102424 Run-TryBot: David du Colombier <0intro@gmail.com> Reviewed-by: Alex Brainman <alex.brainman@gmail.com> Reviewed-by: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-02-20syscall: ensure Mkdir(path) on Plan 9 fails if path existsRichard Miller
On Plan 9, the underlying create() syscall with DMDIR flag, which is used to implement Mkdir, will fail silently if the path exists and is not a directory. Work around this by checking for existence first and rejecting Mkdir with error EEXIST if the path is found. Fixes #23918 Change-Id: I439115662307923c9f498d3e7b1f32c6d205e1ad Reviewed-on: https://go-review.googlesource.com/94777 Reviewed-by: David du Colombier <0intro@gmail.com>
2017-12-12os: don't use test logger for GetwdIan Lance Taylor
Otherwise, on systems for which syscall does not implement Getwd, a lot of unnecessary files and directories get added to the testlog, right up the root directory. This was causing tests on such systems to fail to cache in practice. Updates #22593 Change-Id: Ic8cb3450ea62aa0ca8eeb15754349f151cd76f85 Reviewed-on: https://go-review.googlesource.com/83455 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2017-12-11cmd/go: invalidate cached test results if env vars or files changeRuss Cox
When we write a cached test result, we now also write a log of the environment variables and files inspected by the test run, along with a hash of their content. Before reusing a cached test result, we recompute the hash of the content specified by the log, and only use the result if that content has not changed. This makes test caching behave correctly for tests that consult environment variables or stat or read files or directories. Fixes #22593. Change-Id: I8608798e73c90e0c1911a38bf7e03e1232d784dc Reviewed-on: https://go-review.googlesource.com/81895 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-10-26os: consider only files from #M as regular on Plan 9David du Colombier
TestRemoveDevNull was added in CL 31657. However, this test was failing on Plan 9, because /dev/null was considered as a regular file. On Plan 9, there is no special mode to distinguish between device files and regular files. However, files are served by different servers. For example, /dev/null is served by #c (devcons), while /bin/cat is served by #M (devmnt). We chose to consider only the files served by #M as regular files. All files served by different servers will be considered as device files. Fixes #17598. Change-Id: Ibb1c3357d742cf2a7de15fc78c9e436dc31982bb Reviewed-on: https://go-review.googlesource.com/32152 Reviewed-by: Russ Cox <rsc@golang.org> Run-TryBot: David du Colombier <0intro@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-08-16os: consolidate filesHiroshi Ioka
Code movement only. If someone finds function 'foo' in "foo_linux.go", they will expect that the Window version of 'foo' exists in "foo_windows.go". Current code doesn't follow this manner. For example, 'sameFile' exists in "file_unix.go", "stat_plan9.go" and "types_windows.go". The CL address that problem by following rules: * readdir family => dir.go, dir_$GOOS.go * stat family => stat.go, stat_$GOOS.go * path-functions => path_$GOOS.go * sameFile => types.go, types_$GOOS.go * process-functions => exec.go, exec_$GOOS.go * hostname => sys.go, sys_$GOOS.go Change-Id: Ic3c64663ce0b2a364d7a414351cd3c772e70187b Reviewed-on: https://go-review.googlesource.com/27035 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-04-15all: remove unnecessary type conversionsMatthew Dempsky
cmd and runtime were handled separately, and I'm intentionally skipped syscall. This is the rest of the standard library. CL generated mechanically with github.com/mdempsky/unconvert. Change-Id: I9e0eff886974dedc37adb93f602064b83e469122 Reviewed-on: https://go-review.googlesource.com/22104 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-03-02all: single space after period.Brad Fitzpatrick
The tree's pretty inconsistent about single space vs double space after a period in documentation. Make it consistently a single space, per earlier decisions. This means contributors won't be confused by misleading precedence. This CL doesn't use go/doc to parse. It only addresses // comments. It was generated with: $ perl -i -npe 's,^(\s*// .+[a-z]\.) +([A-Z]),$1 $2,' $(git grep -l -E '^\s*//(.+\.) +([A-Z])') $ go test go/doc -update Change-Id: Iccdb99c37c797ef1f804a94b22ba5ee4b500c4f7 Reviewed-on: https://go-review.googlesource.com/20022 Reviewed-by: Rob Pike <r@golang.org> Reviewed-by: Dave Day <djd@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2015-07-18os: remove stuttering return value namesBrad Fitzpatrick
Old style. Make it compliant with our code review comments document. Also, make WriteString's return parameter named 'n', not 'ret', for consistency. Noticed during another documentation review. Change-Id: Ie88910c5841f8353bc5c0152e2168b497578e15e Reviewed-on: https://go-review.googlesource.com/12324 Reviewed-by: Rob Pike <r@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2015-06-11os: fix error returned by dirstat on Plan 9David du Colombier
When the Stat or Fstat system calls return -1, dirstat incorrectly returns ErrShortStat. However, the error returned by Stat or Fstat could be different. For example, when the file doesn't exist, they return "does not exist". Dirstat should return the error returned by the system call. Fixes #10911. Fixes #11132. Change-Id: Icf242d203d256f12366b1e277f99b1458385104a Reviewed-on: https://go-review.googlesource.com/10900 Run-TryBot: David du Colombier <0intro@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-01-26os: emulate plan 9 libc in statDavid du Colombier
This change is a recreation of the CL written by Nick Owens on http://golang.org/cl/150730043. If the stat buffer is too short, the kernel informs us by putting the 2-byte size in the buffer, so we read that and try again. This follows the same algorithm as /sys/src/libc/9sys/dirfstat.c. Fixes #8781. Change-Id: I01b4ad3a5e705dd4cab6673c7a119f8bef9bbd7c Reviewed-on: https://go-review.googlesource.com/3281 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2014-09-08build: move package sources from src/pkg to srcRuss Cox
Preparation was in CL 134570043. This CL contains only the effect of 'hg mv src/pkg/* src'. For more about the move, see golang.org/s/go14nopkg.