os: fix error returned by dirstat on Plan 9

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>
This commit is contained in:
David du Colombier 2015-06-10 22:32:14 +02:00
parent d574b59fc7
commit bd8e3d028e
1 changed files with 1 additions and 1 deletions

View File

@ -63,7 +63,7 @@ func dirstat(arg interface{}) (*syscall.Dir, error) {
}
if n < _BIT16SZ {
return nil, &PathError{"stat", name, syscall.ErrShortStat}
return nil, &PathError{"stat", name, err}
}
// Pull the real size out of the stat message.