]> Cypherpunks repositories - gostls13.git/commitdiff
os: consider only files from #M as regular on Plan 9
authorDavid du Colombier <0intro@gmail.com>
Wed, 26 Oct 2016 16:03:32 +0000 (18:03 +0200)
committerDavid du Colombier <0intro@gmail.com>
Wed, 26 Oct 2016 16:18:00 +0000 (16:18 +0000)
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>

src/os/stat_plan9.go

index 1ae165807f864408c2447772fd157e9c8b0e2a8a..274d0d86f34c593b28ee39bd611502ff1ca8af70 100644 (file)
@@ -31,6 +31,10 @@ func fileInfoFromStat(d *syscall.Dir) FileInfo {
        if d.Mode&syscall.DMTMP != 0 {
                fs.mode |= ModeTemporary
        }
+       // Consider all files not served by #M as device files.
+       if d.Type != 'M' {
+               fs.mode |= ModeDevice
+       }
        return fs
 }