| author | |
| committer | |
| log | f4eecf8d7d4026a9e0ab8986b1c049ad2a0e01fc |
| tree | 15bd373d3ed8ca5c036b2ab18b84f07f1db0c679 |
| parent | 6cdd576d4176c2581f796c2066ca0f92bda03c9e |
I hit an unexpected errno 30 on macos attempting to call createFile on a
directory in PATH. errno 30 is EROFS, this change propagates that error
as error.ReadOnlyFileSystem.6 files changed, 9 insertions(+), 0 deletions(-)
lib/std/Io/Dispatch.zig+2| ... | ... | @@ -2512,6 +2512,7 @@ fn dirCreateFile( |
| 2512 | 2512 | .OPNOTSUPP => return error.FileLocksUnsupported, |
| 2513 | 2513 | .AGAIN => return error.WouldBlock, |
| 2514 | 2514 | .TXTBSY => return error.FileBusy, |
| 2515 | .ROFS => return error.ReadOnlyFileSystem, | |
| 2515 | 2516 | .NXIO => return error.NoDevice, |
| 2516 | 2517 | .ILSEQ => return error.BadPathName, |
| 2517 | 2518 | else => |err| return unexpectedErrno(err), |
| ... | ... | @@ -2647,6 +2648,7 @@ fn dirOpenFile( |
| 2647 | 2648 | .AGAIN => return error.WouldBlock, |
| 2648 | 2649 | .TXTBSY => return error.FileBusy, |
| 2649 | 2650 | .NXIO => return error.NoDevice, |
| 2651 | .ROFS => return error.ReadOnlyFileSystem, | |
| 2650 | 2652 | .ILSEQ => return error.BadPathName, |
| 2651 | 2653 | else => |err| return unexpectedErrno(err), |
| 2652 | 2654 | } |
lib/std/Io/File.zig+1| ... | ... | @@ -202,6 +202,7 @@ pub const OpenError = error{ |
| 202 | 202 | NotDir, |
| 203 | 203 | /// The path already exists and the `CREAT` and `EXCL` flags were provided. |
| 204 | 204 | PathAlreadyExists, |
| 205 | ReadOnlyFileSystem, | |
| 205 | 206 | DeviceBusy, |
| 206 | 207 | FileLocksUnsupported, |
| 207 | 208 | /// One of these three things: |
lib/std/Io/Threaded.zig+2| ... | ... | @@ -4290,6 +4290,7 @@ fn dirCreateFilePosix( |
| 4290 | 4290 | .AGAIN => return error.WouldBlock, |
| 4291 | 4291 | .TXTBSY => return error.FileBusy, |
| 4292 | 4292 | .NXIO => return error.NoDevice, |
| 4293 | .ROFS => return error.ReadOnlyFileSystem, | |
| 4293 | 4294 | .ILSEQ => return error.BadPathName, |
| 4294 | 4295 | else => |err| return posix.unexpectedErrno(err), |
| 4295 | 4296 | } |
| ... | ... | @@ -4871,6 +4872,7 @@ fn dirOpenFilePosix( |
| 4871 | 4872 | .AGAIN => return error.WouldBlock, |
| 4872 | 4873 | .TXTBSY => return error.FileBusy, |
| 4873 | 4874 | .NXIO => return error.NoDevice, |
| 4875 | .ROFS => return error.ReadOnlyFileSystem, | |
| 4874 | 4876 | .ILSEQ => return error.BadPathName, |
| 4875 | 4877 | else => |err| return posix.unexpectedErrno(err), |
| 4876 | 4878 | } |
lib/std/Io/Uring.zig+1| ... | ... | @@ -5673,6 +5673,7 @@ fn openat( |
| 5673 | 5673 | .AGAIN => return error.WouldBlock, |
| 5674 | 5674 | .TXTBSY => return error.FileBusy, |
| 5675 | 5675 | .NXIO => return error.NoDevice, |
| 5676 | .ROFS => return error.ReadOnlyFileSystem, | |
| 5676 | 5677 | .ILSEQ => return error.BadPathName, |
| 5677 | 5678 | else => |err| return unexpectedErrno(err), |
| 5678 | 5679 | } |
lib/std/debug/SelfInfo/Windows.zig+1| ... | ... | @@ -360,6 +360,7 @@ const Module = struct { |
| 360 | 360 | error.SystemFdQuotaExceeded, |
| 361 | 361 | error.FileLocksUnsupported, |
| 362 | 362 | error.FileBusy, |
| 363 | error.ReadOnlyFileSystem, | |
| 363 | 364 | => return error.ReadFailed, |
| 364 | 365 | }; |
| 365 | 366 | errdefer coff_file.close(io); |
lib/std/zig/system.zig+2| ... | ... | @@ -423,6 +423,7 @@ pub fn resolveTargetQuery(io: Io, query: Target.Query) DetectError!Target { |
| 423 | 423 | error.ConnectionResetByPeer => return error.Unexpected, |
| 424 | 424 | error.NotOpenForReading => return error.Unexpected, |
| 425 | 425 | error.SocketUnconnected => return error.Unexpected, |
| 426 | error.ReadOnlyFileSystem => return error.Unexpected, | |
| 426 | 427 | |
| 427 | 428 | error.AccessDenied, |
| 428 | 429 | error.SymLinkLoop, |
| ... | ... | @@ -853,6 +854,7 @@ fn glibcVerFromRPath(io: Io, rpath: []const u8) !std.SemanticVersion { |
| 853 | 854 | error.PathAlreadyExists => return error.Unexpected, // read-only |
| 854 | 855 | error.DeviceBusy => return error.Unexpected, // read-only |
| 855 | 856 | error.FileBusy => return error.Unexpected, // read-only |
| 857 | error.ReadOnlyFileSystem => return error.Unexpected, // read-only | |
| 856 | 858 | error.NoDevice => return error.Unexpected, // not asking for a special device |
| 857 | 859 | error.FileTooBig => return error.Unexpected, |
| 858 | 860 | error.WouldBlock => return error.Unexpected, // not opened in non-blocking |