about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/Syscall.pm4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/PublicInbox/Syscall.pm b/lib/PublicInbox/Syscall.pm
index bcfae2cb..2e3d9cb3 100644
--- a/lib/PublicInbox/Syscall.pm
+++ b/lib/PublicInbox/Syscall.pm
@@ -15,7 +15,7 @@ package PublicInbox::Syscall;
 use strict;
 use v5.10.1;
 use parent qw(Exporter);
-use POSIX qw(ENOENT EEXIST ENOSYS O_NONBLOCK);
+use POSIX qw(ENOENT EEXIST ENOSYS EINVAL O_NONBLOCK);
 use Config;
 
 # $VERSION = '0.25'; # Sys::Syscall version
@@ -324,7 +324,7 @@ sub rename_noreplace ($$) {
                 my $ret = syscall($SYS_renameat2, -100, $old, -100, $new, 1);
                 if ($ret == 0) {
                         1; # like rename() perlop
-                } elsif ($! == ENOSYS) {
+                } elsif ($! == ENOSYS || $! == EINVAL) {
                         undef $SYS_renameat2;
                         _rename_noreplace_racy($old, $new);
                 } else {