From 9038528187932babc86558ec343511c635446a28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Date: Fri, 19 Aug 2022 09:42:42 +0300 Subject: [PATCH] copy_file_range: fix zigification of TXTBSY From `copy_file_range(2)` errors: ETXTBSY Either fd_in or fd_out refers to an active swap file. Same error will be used in the upcoming `ioctl_ficlonerange(2)`: ETXTBSY One of the files is a swap file. Swap files cannot share storage. --- lib/std/os.zig | 4 ++-- src/link.zig | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/std/os.zig b/lib/std/os.zig index 24b438a53e..59f2a2173f 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -6251,7 +6251,7 @@ pub const CopyFileRangeError = error{ NoSpaceLeft, Unseekable, PermissionDenied, - FileBusy, + SwapFile, } || PReadError || PWriteError || UnexpectedError; var has_copy_file_range_syscall = std.atomic.Atomic(bool).init(true); @@ -6305,7 +6305,7 @@ pub fn copy_file_range(fd_in: fd_t, off_in: u64, fd_out: fd_t, off_out: u64, len .NOSPC => return error.NoSpaceLeft, .OVERFLOW => return error.Unseekable, .PERM => return error.PermissionDenied, - .TXTBSY => return error.FileBusy, + .TXTBSY => return error.SwapFile, // these may not be regular files, try fallback .INVAL => {}, // support for cross-filesystem copy added in Linux 5.3, use fallback diff --git a/src/link.zig b/src/link.zig index b46ea51013..60c6b24640 100644 --- a/src/link.zig +++ b/src/link.zig @@ -426,7 +426,7 @@ pub const File = struct { NoSpaceLeft, Unseekable, PermissionDenied, - FileBusy, + SwapFile, SystemResources, OperationAborted, BrokenPipe,