mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-04-27 19:09:47 +03:00
handle EROFS in create/open file
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.
This commit is contained in:
committed by
Andrew Kelley
parent
6cdd576d41
commit
f4eecf8d7d
@@ -2512,6 +2512,7 @@ fn dirCreateFile(
|
||||
.OPNOTSUPP => return error.FileLocksUnsupported,
|
||||
.AGAIN => return error.WouldBlock,
|
||||
.TXTBSY => return error.FileBusy,
|
||||
.ROFS => return error.ReadOnlyFileSystem,
|
||||
.NXIO => return error.NoDevice,
|
||||
.ILSEQ => return error.BadPathName,
|
||||
else => |err| return unexpectedErrno(err),
|
||||
@@ -2647,6 +2648,7 @@ fn dirOpenFile(
|
||||
.AGAIN => return error.WouldBlock,
|
||||
.TXTBSY => return error.FileBusy,
|
||||
.NXIO => return error.NoDevice,
|
||||
.ROFS => return error.ReadOnlyFileSystem,
|
||||
.ILSEQ => return error.BadPathName,
|
||||
else => |err| return unexpectedErrno(err),
|
||||
}
|
||||
|
||||
@@ -202,6 +202,7 @@ pub const OpenError = error{
|
||||
NotDir,
|
||||
/// The path already exists and the `CREAT` and `EXCL` flags were provided.
|
||||
PathAlreadyExists,
|
||||
ReadOnlyFileSystem,
|
||||
DeviceBusy,
|
||||
FileLocksUnsupported,
|
||||
/// One of these three things:
|
||||
|
||||
@@ -4290,6 +4290,7 @@ fn dirCreateFilePosix(
|
||||
.AGAIN => return error.WouldBlock,
|
||||
.TXTBSY => return error.FileBusy,
|
||||
.NXIO => return error.NoDevice,
|
||||
.ROFS => return error.ReadOnlyFileSystem,
|
||||
.ILSEQ => return error.BadPathName,
|
||||
else => |err| return posix.unexpectedErrno(err),
|
||||
}
|
||||
@@ -4871,6 +4872,7 @@ fn dirOpenFilePosix(
|
||||
.AGAIN => return error.WouldBlock,
|
||||
.TXTBSY => return error.FileBusy,
|
||||
.NXIO => return error.NoDevice,
|
||||
.ROFS => return error.ReadOnlyFileSystem,
|
||||
.ILSEQ => return error.BadPathName,
|
||||
else => |err| return posix.unexpectedErrno(err),
|
||||
}
|
||||
|
||||
@@ -5673,6 +5673,7 @@ fn openat(
|
||||
.AGAIN => return error.WouldBlock,
|
||||
.TXTBSY => return error.FileBusy,
|
||||
.NXIO => return error.NoDevice,
|
||||
.ROFS => return error.ReadOnlyFileSystem,
|
||||
.ILSEQ => return error.BadPathName,
|
||||
else => |err| return unexpectedErrno(err),
|
||||
}
|
||||
|
||||
@@ -360,6 +360,7 @@ const Module = struct {
|
||||
error.SystemFdQuotaExceeded,
|
||||
error.FileLocksUnsupported,
|
||||
error.FileBusy,
|
||||
error.ReadOnlyFileSystem,
|
||||
=> return error.ReadFailed,
|
||||
};
|
||||
errdefer coff_file.close(io);
|
||||
|
||||
@@ -423,6 +423,7 @@ pub fn resolveTargetQuery(io: Io, query: Target.Query) DetectError!Target {
|
||||
error.ConnectionResetByPeer => return error.Unexpected,
|
||||
error.NotOpenForReading => return error.Unexpected,
|
||||
error.SocketUnconnected => return error.Unexpected,
|
||||
error.ReadOnlyFileSystem => return error.Unexpected,
|
||||
|
||||
error.AccessDenied,
|
||||
error.SymLinkLoop,
|
||||
@@ -853,6 +854,7 @@ fn glibcVerFromRPath(io: Io, rpath: []const u8) !std.SemanticVersion {
|
||||
error.PathAlreadyExists => return error.Unexpected, // read-only
|
||||
error.DeviceBusy => return error.Unexpected, // read-only
|
||||
error.FileBusy => return error.Unexpected, // read-only
|
||||
error.ReadOnlyFileSystem => return error.Unexpected, // read-only
|
||||
error.NoDevice => return error.Unexpected, // not asking for a special device
|
||||
error.FileTooBig => return error.Unexpected,
|
||||
error.WouldBlock => return error.Unexpected, // not opened in non-blocking
|
||||
|
||||
Reference in New Issue
Block a user