forked from pool/openafs
Accepting request 630053 from home:hauky:branches:filesystems
- Fix 32Bit build by adding commit 554176bd236d772d670df9bdd2496facd5a4209a as use_timespec64_for_kernel_4.18.patch - Update to 1.8.1 OBS-URL: https://build.opensuse.org/request/show/630053 OBS-URL: https://build.opensuse.org/package/show/filesystems/openafs?expand=0&rev=21
This commit is contained in:
parent
5828a742ca
commit
d4bcbf7d60
@ -1,27 +0,0 @@
|
||||
<!--NO-FRAMELESS-->
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
|
||||
"http://www.w3c.org/TR/html4/frameset.dtd">
|
||||
<html><head>
|
||||
<meta name="verify-v1" content="I/X2Wfxkt50ZaXkdbfIow6iFQIZ71o0o2b6sPTOGmPE=" /><!-- shadow -->
|
||||
<META name="verify-v1" content="THAFicQcPIBMrawRwzaJg3JK8FArpvoecAy5Zx7v9DM=" /><!-- cg2v -->
|
||||
<META name="verify-v1" content="VMsthPusbXnedJuKjM0/lhH0uzVj79aQ/lPfk2FLXsA=" /><!-- jaltman -->
|
||||
<META name="verify-v1" content="fijqhqC5PvhJOATNi4e6h2uSK0v1deFiKXL+yItw/5w=" /><!-- jhutz -->
|
||||
<title>OpenAFS</title>
|
||||
<link href="/openafs.css" rel="stylesheet" type="text/css">
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-5995928-1");
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
</head>
|
||||
<frameset cols="265,*" border=0>
|
||||
<frame src="/navbar.html" name="navbar">
|
||||
<frameset rows="170,*" border=0>
|
||||
<frame src="/top.html" scrolling=no name="top">
|
||||
<frame src="/dl/openafs/1.8.0/RELNOTES-1.8.0" name="openafs_main">
|
||||
</frameset>
|
||||
</frameset>
|
||||
</html>
|
69
RELNOTES-1.8.1
Normal file
69
RELNOTES-1.8.1
Normal file
@ -0,0 +1,69 @@
|
||||
User-Visible OpenAFS Changes
|
||||
|
||||
OpenAFS 1.8.1
|
||||
|
||||
All Platforms
|
||||
|
||||
* Improve the usability and consistency of the public API: install missing
|
||||
headers, and add additional symbols to the export list for shared libraries.
|
||||
|
||||
* Improved Rx abort generation: use the proper serial number for an existing
|
||||
connection if possible, and 0 otherwise (to improve debugging).
|
||||
|
||||
* Assorted minor fixes in response to static analysis of the codebase.
|
||||
|
||||
* Fix memory-safety error in XDR decoding of enumerated types.
|
||||
|
||||
All Server Platforms
|
||||
|
||||
* Fix reference counting error that could cause an assertion failure
|
||||
in some workloads.
|
||||
|
||||
* vldb_check -fix will no longer corrupt the vldb when multiple MH blocks are present.
|
||||
|
||||
* Assorted cleanups and efficiency improvements in the ubik implementation.
|
||||
|
||||
* Return a valid InlineBulkStatus response in error cases.
|
||||
|
||||
* The fileserver now rejects invalid partition names when attaching partitions.
|
||||
|
||||
All Client Platforms
|
||||
|
||||
* Fix volume callbacks (e.g., when running 'vos release').
|
||||
|
||||
* Treat failure to obtain a DSlot as a hard error for that cache partition,
|
||||
avoiding a flood of "disk cache read error in CacheItems" log messages,
|
||||
and reducing the chance of subsequent panic.
|
||||
|
||||
* Improve error messages for invalid values with -volume-ttl.
|
||||
|
||||
* Remove useless error message:
|
||||
"find_preferred_connection: no connection and !create".
|
||||
|
||||
* Avoid passing NULL to a kernel memory deallocator, which is not guaranteed
|
||||
to be safe on all systems.
|
||||
|
||||
Linux
|
||||
|
||||
* Add support for 64-bit ARM clients ("arm64").
|
||||
|
||||
* Fix panic when cache bypass is enabled.
|
||||
|
||||
* Improve cache manager behavior when unable to open cache files.
|
||||
|
||||
* Improvements to the RPM packaging.
|
||||
|
||||
* Detect out-of-memory when using kernel pages for writing.
|
||||
|
||||
Solaris
|
||||
|
||||
* Fix various issues in the build process for recent Solaris versions.
|
||||
|
||||
MacOS
|
||||
|
||||
* Fix clients on OS X 10.13.
|
||||
|
||||
FreeBSD / NetBSD / OpenBSD
|
||||
|
||||
* Fix panic triggered during periodic cleanup operations and shutdown.
|
||||
|
@ -1,38 +0,0 @@
|
||||
From f5794e029903db79f345f42582230a1fd0f7d823 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Deason <adeason@sinenomine.net>
|
||||
Date: Mon, 5 Feb 2018 00:07:10 -0600
|
||||
Subject: [PATCH] util: Add the AFS_STRINGIZE() macro
|
||||
|
||||
Add a macro to help with easily printing the value of #define'd
|
||||
constants, called AFS_STRINGIZE(). For example:
|
||||
|
||||
printf("The value of AFS_SYSCALL is: " AFS_STRINGIZE(AFS_SYSCALL) "\n");
|
||||
|
||||
Change-Id: I19a3e9d930f1ca2085506957b4e96dff5bf1c22e
|
||||
Reviewed-on: https://gerrit.openafs.org/12893
|
||||
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
||||
Reviewed-by: Ian Wienand <iwienand@redhat.com>
|
||||
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
||||
---
|
||||
src/util/afsutil.h | 5 +++++
|
||||
1 files changed, 5 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/src/util/afsutil.h b/src/util/afsutil.h
|
||||
index bd78946..bbebcc1 100644
|
||||
--- a/src/util/afsutil.h
|
||||
+++ b/src/util/afsutil.h
|
||||
@@ -121,6 +121,11 @@ extern int re_exec(const char *p1);
|
||||
/* b64_string_t is 8 bytes, in stds.h */
|
||||
typedef char lb64_string_t[12];
|
||||
|
||||
+/* A simple macro to help show the value of #define'd constants. e.g. If 'FOO'
|
||||
+ * is defined as 5, then AFS_STRINGIZE(FOO) expands to "5" */
|
||||
+#define AFS_STRINGIZE_(s) #s
|
||||
+#define AFS_STRINGIZE(s) AFS_STRINGIZE_(s)
|
||||
+
|
||||
#include <afs/ktime.h>
|
||||
#include "afsutil_prototypes.h"
|
||||
|
||||
--
|
||||
1.7.1
|
||||
|
@ -1,162 +0,0 @@
|
||||
From 4f7550dcaf9375046514cdd97cea0f667e955e9f Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Deason <adeason@sinenomine.net>
|
||||
Date: Sat, 7 Mar 2015 17:27:47 -0600
|
||||
Subject: [PATCH] Add support for arm64_linux26
|
||||
|
||||
Add support for the arm64/aarch64 architecture on Linux 2.6+. The
|
||||
param header file is mostly combined from arm and amd64.
|
||||
|
||||
Note that the code for syscall interception has not been updated for
|
||||
arm64, so this will not build on arm64 without support for kernel
|
||||
keyrings. This also does not define any AFS syscall number, since no
|
||||
number in the Linux arm64 syscall table is "free" for us to use, as
|
||||
far as I am aware.
|
||||
|
||||
Adapted from initial patches from Micheal Waltz <mwaltz@qualcomm.com>.
|
||||
|
||||
Change-Id: I1ee239ded17d8fea3b91b70405215aa1b3f7a6e9
|
||||
Reviewed-on: https://gerrit.openafs.org/11940
|
||||
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
||||
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
||||
---
|
||||
INSTALL | 2 +-
|
||||
src/afs/afs_syscall.c | 4 ++++
|
||||
src/afs/sysincludes.h | 1 +
|
||||
src/cf/osconf.m4 | 2 +-
|
||||
src/cf/sysname.m4 | 3 +++
|
||||
src/config/afs_sysnames.h | 2 ++
|
||||
src/config/param.arm64_linux26.h | 38 ++++++++++++++++++++++++++++++++++++++
|
||||
7 files changed, 50 insertions(+), 2 deletions(-)
|
||||
create mode 100644 src/config/param.arm64_linux26.h
|
||||
|
||||
diff --git a/INSTALL b/INSTALL
|
||||
index 3d802a72d3..920e23e615 100644
|
||||
--- a/INSTALL
|
||||
+++ b/INSTALL
|
||||
@@ -38,7 +38,7 @@ A Configuring
|
||||
amd64_fbsd_93, amd64_fbsd_100, amd64_fbsd_101
|
||||
amd64_linux26
|
||||
amd64_nbsd20, amd64_nbsd30, amd64_nbsd40
|
||||
- arm_linux26
|
||||
+ arm_linux26, arm64_linux26
|
||||
hp_ux11i, hp_ux110, hp_ux1123 (See notes below for information on
|
||||
getting missing header)
|
||||
hp_ux102 (Client port possible, but db servers and utilities work)
|
||||
diff --git a/src/afs/afs_syscall.c b/src/afs/afs_syscall.c
|
||||
index b2b644ae13..ce6afdf9a8 100644
|
||||
--- a/src/afs/afs_syscall.c
|
||||
+++ b/src/afs/afs_syscall.c
|
||||
@@ -141,6 +141,8 @@ copyin_afs_ioctl(caddr_t cmarg, struct afs_ioctl *dst)
|
||||
if (test_thread_flag(TIF_31BIT))
|
||||
#elif defined(AFS_S390X_LINUX20_ENV)
|
||||
if (current->thread.flags & S390_FLAG_31BIT)
|
||||
+#elif defined(AFS_ARM64_LINUX26_ENV)
|
||||
+ if (is_compat_task())
|
||||
|
||||
#else
|
||||
#error pioctl32 not done for this linux
|
||||
@@ -416,6 +418,8 @@ copyin_iparam(caddr_t cmarg, struct iparam *dst)
|
||||
if (test_thread_flag(TIF_31BIT))
|
||||
#elif defined(AFS_S390X_LINUX20_ENV)
|
||||
if (current->thread.flags & S390_FLAG_31BIT)
|
||||
+#elif defined(AFS_ARM64_LINUX26_ENV)
|
||||
+ if (is_compat_task())
|
||||
|
||||
#else
|
||||
#error iparam32 not done for this linux platform
|
||||
diff --git a/src/afs/sysincludes.h b/src/afs/sysincludes.h
|
||||
index 0e09271cdb..603773cfdd 100644
|
||||
--- a/src/afs/sysincludes.h
|
||||
+++ b/src/afs/sysincludes.h
|
||||
@@ -122,6 +122,7 @@
|
||||
# include <linux/kdev_t.h>
|
||||
# include <linux/ioctl.h>
|
||||
# if defined(AFS_LINUX26_ENV)
|
||||
+# include <linux/compat.h>
|
||||
# include <linux/backing-dev.h>
|
||||
# include <linux/pagemap.h>
|
||||
# include <linux/namei.h>
|
||||
diff --git a/src/cf/osconf.m4 b/src/cf/osconf.m4
|
||||
index 214dc49b8c..469b92feb6 100644
|
||||
--- a/src/cf/osconf.m4
|
||||
+++ b/src/cf/osconf.m4
|
||||
@@ -69,7 +69,7 @@ case $AFS_SYSNAME in
|
||||
SHLIB_LINKER="${CC} -shared"
|
||||
;;
|
||||
|
||||
- arm_linux_24 | arm_linux26)
|
||||
+ arm_linux_24 | arm_linux26 | arm64_linux26)
|
||||
CCOBJ="\$(CC) -fPIC"
|
||||
MT_CFLAGS='-pthread -D_REENTRANT'
|
||||
PAM_OPTMZ=-O2
|
||||
diff --git a/src/cf/sysname.m4 b/src/cf/sysname.m4
|
||||
index c4895a92a1..ff15902dc4 100644
|
||||
--- a/src/cf/sysname.m4
|
||||
+++ b/src/cf/sysname.m4
|
||||
@@ -241,6 +241,9 @@ else
|
||||
arm*-linux*)
|
||||
AFS_SYSNAME="arm_linuxXX"
|
||||
;;
|
||||
+ aarch64*-linux*)
|
||||
+ AFS_SYSNAME="arm64_linuxXX"
|
||||
+ ;;
|
||||
parisc-*-linux-gnu|hppa-*-linux-gnu)
|
||||
AFS_SYSNAME="parisc_linuxXX"
|
||||
enable_pam="no"
|
||||
diff --git a/src/config/afs_sysnames.h b/src/config/afs_sysnames.h
|
||||
index be27ae651e..dc9e74aab1 100644
|
||||
--- a/src/config/afs_sysnames.h
|
||||
+++ b/src/config/afs_sysnames.h
|
||||
@@ -385,6 +385,8 @@
|
||||
#define SYS_NAME_ID_amd64_obsd53 4022
|
||||
#define SYS_NAME_ID_amd64_obsd54 4023
|
||||
|
||||
+#define SYS_NAME_ID_arm64_linux2 4100
|
||||
+#define SYS_NAME_ID_arm64_linux26 4103
|
||||
|
||||
#define AFS_REALM_SZ 64
|
||||
|
||||
diff --git a/src/config/param.arm64_linux26.h b/src/config/param.arm64_linux26.h
|
||||
new file mode 100644
|
||||
index 0000000000..02e867a338
|
||||
--- /dev/null
|
||||
+++ b/src/config/param.arm64_linux26.h
|
||||
@@ -0,0 +1,38 @@
|
||||
+/*
|
||||
+ * Copyright 2000, International Business Machines Corporation and others.
|
||||
+ * All Rights Reserved.
|
||||
+ *
|
||||
+ * This software has been released under the terms of the IBM Public
|
||||
+ * License. For details, see the LICENSE file in the top-level source
|
||||
+ * directory or online at http://www.openafs.org/dl/license10.html
|
||||
+ */
|
||||
+
|
||||
+#ifndef AFS_PARAM_H
|
||||
+#define AFS_PARAM_H
|
||||
+
|
||||
+#ifndef UKERNEL
|
||||
+
|
||||
+/* This section for kernel libafs compiles only */
|
||||
+#define AFS_ARM64_LINUX26_ENV 1
|
||||
+#define AFS_LINUX_64BIT_KERNEL 1
|
||||
+#define AFS_64BITPOINTER_ENV 1 /* pointers are 64 bits */
|
||||
+#define AFS_64BITUSERPOINTER_ENV 1
|
||||
+#define AFS_MAXVCOUNT_ENV 1
|
||||
+
|
||||
+#else /* !defined(UKERNEL) */
|
||||
+
|
||||
+/* This section for user space compiles only */
|
||||
+#define UKERNEL 1 /* user space kernel */
|
||||
+
|
||||
+#endif /* !defined(UKERNEL) */
|
||||
+
|
||||
+#ifndef USE_UCONTEXT
|
||||
+#define USE_UCONTEXT
|
||||
+#endif
|
||||
+
|
||||
+/* Machine / Operating system information */
|
||||
+#define SYS_NAME "arm64_linux26"
|
||||
+#define SYS_NAME_ID SYS_NAME_ID_arm64_linux26
|
||||
+#define AFSLITTLE_ENDIAN 1
|
||||
+
|
||||
+#endif /* AFS_PARAM_H */
|
@ -1,62 +0,0 @@
|
||||
From b792dea0f1f83673b0b045adf608412901b3024c Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Deason <adeason@sinenomine.net>
|
||||
Date: Sun, 8 Mar 2015 11:47:28 -0500
|
||||
Subject: [PATCH] hcrypto: Avoid 'double' param in arm64 kernel code
|
||||
|
||||
Currently, the RAND_add function in hcrypto uses a floating point
|
||||
argument (specifically, a 'double'), as well as any implementations of
|
||||
RAND_add. On Linux arm64, we cannot use floating point code in the
|
||||
kernel, since the kernel module is compiled with -mgeneral-regs-only,
|
||||
which prevents the use of floating point registers. No code in the
|
||||
tree actually makes use of this argument, but its mere presence is
|
||||
enough to cause an error with at least some versions of gcc with
|
||||
certain arguments.
|
||||
|
||||
To get around this, simply change all instances of 'double' in hcrypto
|
||||
to be a void pointer instead. This allows the code to compile as long
|
||||
as nobody actually uses that argument in the kernel. If the code is
|
||||
changed such that we do actually use that argument, the argument will
|
||||
be a void* and so will probably (hopefully) cause a compiler error,
|
||||
and the code will need to be examined to make sure this workaround
|
||||
doesn't break anything.
|
||||
|
||||
We already do this on Solaris, which has similar issues for different
|
||||
compiler versions and compiler flags. Add arm64 Linux to the cases
|
||||
where we do this, but restrict this to kernel code only, to try to
|
||||
avoid doing this more often than necessary.
|
||||
|
||||
Change-Id: Ifd10786cd9ac6c9d5152b927e180b7362131f359
|
||||
Reviewed-on: https://gerrit.openafs.org/11939
|
||||
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
||||
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
||||
---
|
||||
src/crypto/hcrypto/kernel/config.h | 15 ++++++++++++---
|
||||
1 files changed, 12 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/crypto/hcrypto/kernel/config.h b/src/crypto/hcrypto/kernel/config.h
|
||||
index 81c2944..b610434 100644
|
||||
--- a/src/crypto/hcrypto/kernel/config.h
|
||||
+++ b/src/crypto/hcrypto/kernel/config.h
|
||||
@@ -98,7 +98,16 @@ static_inline int close(int d) {return -1;}
|
||||
static_inline int gettimeofday(struct timeval *tp, void *tzp)
|
||||
{if (tp == NULL) return -1; tp->tv_sec = osi_Time(); tp->tv_usec = 0; return 0;}
|
||||
|
||||
-#ifdef AFS_SUN5_ENV
|
||||
-/* workaround to allow --disable-optimize-kernel on Solaris */
|
||||
-#define double int
|
||||
+#if defined(KERNEL) && (defined(AFS_SUN5_ENV) || defined(AFS_ARM64_LINUX26_ENV))
|
||||
+/*
|
||||
+ * Some functions such as RAND_add take a 'double' as an argument, but floating
|
||||
+ * point code generally cannot be used in kernelspace. We never actually use
|
||||
+ * that argument in kernel code, but just that it exists as an argument is
|
||||
+ * enough to break the kernel code on Linux (on arm64) and Solaris (depending
|
||||
+ * on the compiler version and flags). Change all instances of double to void*
|
||||
+ * to avoid this; if someone does try to use that argument, hopefully the fact
|
||||
+ * that it is now a void* will flag an error at compile time before it causes
|
||||
+ * any further problems.
|
||||
+ */
|
||||
+# define double void*
|
||||
#endif
|
||||
--
|
||||
1.7.1
|
||||
|
@ -1,223 +0,0 @@
|
||||
From ed513bb516acdb28fc6bbf01714ef2e1df422a8a Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Deason <adeason@sinenomine.net>
|
||||
Date: Wed, 11 Mar 2015 12:55:42 -0500
|
||||
Subject: [PATCH] Do not require AFS_SYSCALL
|
||||
|
||||
Various parts of the code make use of AFS_SYSCALL in order to
|
||||
communicate with the libafs kernel module. Even though most modern
|
||||
platforms do not use an actual syscall anymore (instead using an
|
||||
ioctl-based method or similar to emulate the traditional AFS syscall),
|
||||
some code paths rely on AFS_SYSCALL as a fallback, or just use
|
||||
AFS_SYSCALL because they were never updated to use the newer methods.
|
||||
|
||||
Even platforms that do not use the traditional AFS syscall still
|
||||
define the AFS_SYSCALL number, in case someone still uses it for
|
||||
something. However, some platforms do not have an AFS syscall number;
|
||||
there is no "slot" allocated to us, so we cannot safely issue any
|
||||
syscall.
|
||||
|
||||
For those platforms, we must not reference AFS_SYSCALL at all, or we
|
||||
will fail to build. So, get rid of these references to AFS_SYSCALL if
|
||||
it is not defined. In some places, we can just avoid the relevant code
|
||||
making the syscall. In a few other places, we just pretend like the
|
||||
libafs kernel module was not loaded and yield an ENOSYS error, to make
|
||||
the code simpler.
|
||||
|
||||
Change-Id: I38e033caf7149c2b1b567f9877221ca8551db2ea
|
||||
Reviewed-on: https://gerrit.openafs.org/11937
|
||||
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
||||
Reviewed-by: Ian Wienand <iwienand@redhat.com>
|
||||
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
||||
---
|
||||
src/afsd/afsd_kernel.c | 10 ++++++++--
|
||||
src/afsd/vsys.c | 4 ++++
|
||||
src/rx/rx_user.c | 4 +++-
|
||||
src/sys/pioctl.c | 7 ++++++-
|
||||
src/sys/setpag.c | 8 +++++++-
|
||||
src/venus/fstrace.c | 18 ++++++++++++++++--
|
||||
src/viced/viced.c | 13 ++++++++++++-
|
||||
src/volser/volmain.c | 7 +++++++
|
||||
8 files changed, 63 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/afsd/afsd_kernel.c b/src/afsd/afsd_kernel.c
|
||||
index b15df7476c..093ba5cc0c 100644
|
||||
--- a/src/afsd/afsd_kernel.c
|
||||
+++ b/src/afsd/afsd_kernel.c
|
||||
@@ -274,12 +274,18 @@ afsd_call_syscall(struct afsd_syscall_args *args)
|
||||
error = os_syscall(args);
|
||||
|
||||
if (afsd_debug) {
|
||||
+ const char *syscall_str;
|
||||
+#if defined(AFS_SYSCALL)
|
||||
+ syscall_str = AFS_STRINGIZE(AFS_SYSCALL);
|
||||
+#else
|
||||
+ syscall_str = "[AFS_SYSCALL]";
|
||||
+#endif
|
||||
if (error == -1) {
|
||||
char *s = strerror(errno);
|
||||
- printf("SScall(%d, %d, %d)=%d (%d, %s)\n", AFS_SYSCALL, AFSCALL_CALL,
|
||||
+ printf("SScall(%s, %d, %d)=%d (%d, %s)\n", syscall_str, AFSCALL_CALL,
|
||||
(int)args->params[0], error, errno, s);
|
||||
} else {
|
||||
- printf("SScall(%d, %d, %d)=%d\n", AFS_SYSCALL, AFSCALL_CALL,
|
||||
+ printf("SScall(%s, %d, %d)=%d\n", syscall_str, AFSCALL_CALL,
|
||||
(int)args->params[0], error);
|
||||
}
|
||||
}
|
||||
diff --git a/src/afsd/vsys.c b/src/afsd/vsys.c
|
||||
index 44f4281626..6b5d3b9bc8 100644
|
||||
--- a/src/afsd/vsys.c
|
||||
+++ b/src/afsd/vsys.c
|
||||
@@ -57,9 +57,13 @@ main(int argc, char **argv)
|
||||
numberFlag = 1;
|
||||
}
|
||||
}
|
||||
+#ifdef AFS_SYSCALL
|
||||
code =
|
||||
syscall(AFS_SYSCALL, parms[0], parms[1], parms[2], parms[3], parms[4],
|
||||
parms[5]);
|
||||
+#else
|
||||
+ code = -1;
|
||||
+#endif
|
||||
printf("code %d\n", code);
|
||||
return 0;
|
||||
}
|
||||
diff --git a/src/rx/rx_user.c b/src/rx/rx_user.c
|
||||
index f135fac0ea..4793494041 100644
|
||||
--- a/src/rx/rx_user.c
|
||||
+++ b/src/rx/rx_user.c
|
||||
@@ -448,8 +448,10 @@ rxi_syscall(afs_uint32 a3, afs_uint32 a4, void *a5)
|
||||
|
||||
#if defined(AFS_SGI_ENV)
|
||||
rcode = afs_syscall(AFS_SYSCALL, 28, a3, a4, a5);
|
||||
-#else
|
||||
+#elif defined(AFS_SYSCALL)
|
||||
rcode = syscall(AFS_SYSCALL, 28 /* AFSCALL_CALL */ , a3, a4, a5);
|
||||
+#else
|
||||
+ rcode = -1;
|
||||
#endif /* AFS_SGI_ENV */
|
||||
|
||||
signal(SIGSYS, old);
|
||||
diff --git a/src/sys/pioctl.c b/src/sys/pioctl.c
|
||||
index 031def2282..f2f9138dee 100644
|
||||
--- a/src/sys/pioctl.c
|
||||
+++ b/src/sys/pioctl.c
|
||||
@@ -51,9 +51,14 @@ lpioctl(char *path, int cmd, void *cmarg, int follow)
|
||||
rval = proc_afs_syscall(AFSCALL_PIOCTL, (long)path, cmd, (long)cmarg,
|
||||
follow, &errcode);
|
||||
|
||||
- if(rval)
|
||||
+ if(rval) {
|
||||
+# ifdef AFS_SYSCALL
|
||||
errcode = syscall(AFS_SYSCALL, AFSCALL_PIOCTL, path, cmd, cmarg,
|
||||
follow);
|
||||
+# else
|
||||
+ errcode = -1;
|
||||
+# endif
|
||||
+ }
|
||||
|
||||
return (errcode);
|
||||
}
|
||||
diff --git a/src/sys/setpag.c b/src/sys/setpag.c
|
||||
index 3c90279ee7..48570bf78a 100644
|
||||
--- a/src/sys/setpag.c
|
||||
+++ b/src/sys/setpag.c
|
||||
@@ -55,8 +55,14 @@ lsetpag(void)
|
||||
|
||||
rval = proc_afs_syscall(AFSCALL_SETPAG,0,0,0,0,&errcode);
|
||||
|
||||
- if(rval)
|
||||
+ if(rval) {
|
||||
+# ifdef AFS_SYSCALL
|
||||
errcode = syscall(AFS_SYSCALL, AFSCALL_SETPAG);
|
||||
+# else
|
||||
+ errcode = -1;
|
||||
+# endif
|
||||
+ }
|
||||
+
|
||||
#elif defined(AFS_DARWIN80_ENV)
|
||||
int rval;
|
||||
|
||||
diff --git a/src/venus/fstrace.c b/src/venus/fstrace.c
|
||||
index 12a594972f..04e7407a1a 100644
|
||||
--- a/src/venus/fstrace.c
|
||||
+++ b/src/venus/fstrace.c
|
||||
@@ -1120,12 +1120,22 @@ afs_syscall(long call, long parm0, long parm1, long parm2, long parm3,
|
||||
/* Linux can only handle 5 arguments in the actual syscall. */
|
||||
if (call == AFSCALL_ICL) {
|
||||
rval = proc_afs_syscall(call, parm0, parm1, parm2, (long)eparm, &code);
|
||||
- if (rval)
|
||||
+ if (rval) {
|
||||
+#ifdef AFS_SYSCALL
|
||||
code = syscall(AFS_SYSCALL, call, parm0, parm1, parm2, eparm);
|
||||
+#else
|
||||
+ code = -1;
|
||||
+#endif
|
||||
+ }
|
||||
} else {
|
||||
rval = proc_afs_syscall(call, parm0, parm1, parm2, parm3, &code);
|
||||
- if (rval)
|
||||
+ if (rval) {
|
||||
+#ifdef AFS_SYSCALL
|
||||
code = syscall(AFS_SYSCALL, call, parm0, parm1, parm2, parm3);
|
||||
+#else
|
||||
+ code = -1;
|
||||
+#endif
|
||||
+ }
|
||||
}
|
||||
#if defined(AFS_SPARC64_LINUX20_ENV) || defined(AFS_SPARC_LINUX20_ENV)
|
||||
/* on sparc this function returns none value, so do it myself */
|
||||
@@ -1137,7 +1147,11 @@ afs_syscall(long call, long parm0, long parm1, long parm2, long parm3,
|
||||
if (!code) code = rval;
|
||||
#else
|
||||
#if !defined(AFS_SGI_ENV) && !defined(AFS_AIX32_ENV)
|
||||
+# if defined(AFS_SYSCALL)
|
||||
code = syscall(AFS_SYSCALL, call, parm0, parm1, parm2, parm3, parm4);
|
||||
+# else
|
||||
+ code = -1;
|
||||
+# endif
|
||||
#else
|
||||
#if defined(AFS_SGI_ENV)
|
||||
code = syscall(AFS_ICL, call, parm0, parm1, parm2, parm3, parm4); /* XXX */
|
||||
diff --git a/src/viced/viced.c b/src/viced/viced.c
|
||||
index a8b6e337ce..11f21e0e7e 100644
|
||||
--- a/src/viced/viced.c
|
||||
+++ b/src/viced/viced.c
|
||||
@@ -312,7 +312,18 @@ fs_IsLocalRealmMatch(void *rock, char *name, char *inst, char *cell)
|
||||
return islocal;
|
||||
}
|
||||
|
||||
-#if !defined(AFS_NT40_ENV) && !defined(AFS_DARWIN160_ENV)
|
||||
+#if defined(AFS_NT40_ENV)
|
||||
+/* no viced_syscall */
|
||||
+#elif defined(AFS_DARWIN160_ENV)
|
||||
+/* no viced_syscall */
|
||||
+#elif !defined(AFS_SYSCALL)
|
||||
+int
|
||||
+viced_syscall(afs_uint32 a3, afs_uint32 a4, void *a5)
|
||||
+{
|
||||
+ errno = ENOSYS;
|
||||
+ return -1;
|
||||
+}
|
||||
+#else
|
||||
int
|
||||
viced_syscall(afs_uint32 a3, afs_uint32 a4, void *a5)
|
||||
{
|
||||
diff --git a/src/volser/volmain.c b/src/volser/volmain.c
|
||||
index 430510f4fe..f454dd10dd 100644
|
||||
--- a/src/volser/volmain.c
|
||||
+++ b/src/volser/volmain.c
|
||||
@@ -173,6 +173,13 @@ volser_syscall(afs_uint32 a3, afs_uint32 a4, void *a5)
|
||||
}
|
||||
return err;
|
||||
}
|
||||
+#elif !defined(AFS_SYSCALL)
|
||||
+int
|
||||
+volser_syscall(afs_uint32 a3, afs_uint32 a4, void *a5)
|
||||
+{
|
||||
+ errno = ENOSYS;
|
||||
+ return -1;
|
||||
+}
|
||||
#else
|
||||
int
|
||||
volser_syscall(afs_uint32 a3, afs_uint32 a4, void *a5)
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e26f3bb399f524b4978543eb3ec169fd58f2d409cf4bc22c75c65fb9b09f12e8
|
||||
size 3801291
|
@ -1 +0,0 @@
|
||||
b66890fabf87b64c8eac6ec68d4b60c5 /home/kaduk/openafs/1.8.0/openafs-1.8.0-doc.tar.bz2
|
@ -1 +0,0 @@
|
||||
e26f3bb399f524b4978543eb3ec169fd58f2d409cf4bc22c75c65fb9b09f12e8 openafs-1.8.0-doc.tar.bz2
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:63fae6b3a4339e4a40945fae1afb9b99a5e7f8e8dbde668938ab8c4ff569fd7d
|
||||
size 15113300
|
@ -1 +0,0 @@
|
||||
75fa969fc39f8cf652e1283670f627dc /home/kaduk/openafs/1.8.0/openafs-1.8.0-src.tar.bz2
|
@ -1 +0,0 @@
|
||||
63fae6b3a4339e4a40945fae1afb9b99a5e7f8e8dbde668938ab8c4ff569fd7d openafs-1.8.0-src.tar.bz2
|
3
openafs-1.8.1-doc.tar.bz2
Normal file
3
openafs-1.8.1-doc.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1efe676124e253bbb8aed5c74ad89497daf9ced2fab3ec314e7f6da35b9bb775
|
||||
size 3802825
|
1
openafs-1.8.1-doc.tar.bz2.md5
Normal file
1
openafs-1.8.1-doc.tar.bz2.md5
Normal file
@ -0,0 +1 @@
|
||||
909b073bb280940c1c273676a2692e6a /home/kaduk/openafs/1.8.1/openafs-1.8.1-doc.tar.bz2
|
1
openafs-1.8.1-doc.tar.bz2.sha256
Normal file
1
openafs-1.8.1-doc.tar.bz2.sha256
Normal file
@ -0,0 +1 @@
|
||||
1efe676124e253bbb8aed5c74ad89497daf9ced2fab3ec314e7f6da35b9bb775 openafs-1.8.1-doc.tar.bz2
|
3
openafs-1.8.1-src.tar.bz2
Normal file
3
openafs-1.8.1-src.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2f3c13710839510bca985deb6344aeeab72aff3c51b0269e578c7b4ccb8a5638
|
||||
size 15115755
|
1
openafs-1.8.1-src.tar.bz2.md5
Normal file
1
openafs-1.8.1-src.tar.bz2.md5
Normal file
@ -0,0 +1 @@
|
||||
722ddf9e5a283271f53631c6648549f5 /home/kaduk/openafs/1.8.1/openafs-1.8.1-src.tar.bz2
|
1
openafs-1.8.1-src.tar.bz2.sha256
Normal file
1
openafs-1.8.1-src.tar.bz2.sha256
Normal file
@ -0,0 +1 @@
|
||||
2f3c13710839510bca985deb6344aeeab72aff3c51b0269e578c7b4ccb8a5638 openafs-1.8.1-src.tar.bz2
|
@ -1,3 +1,15 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 16 14:02:44 UTC 2018 - christof.hanke@mpcdf.mpg.de
|
||||
|
||||
- Fix 32Bit build by adding
|
||||
commit 554176bd236d772d670df9bdd2496facd5a4209a as
|
||||
use_timespec64_for_kernel_4.18.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 16 07:53:42 UTC 2018 - christof.hanke@mpcdf.mpg.de
|
||||
|
||||
- Update to 1.8.1
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 27 19:09:41 UTC 2018 - christof.hanke@mpcdf.mpg.de
|
||||
|
||||
|
19
openafs.spec
19
openafs.spec
@ -56,11 +56,11 @@
|
||||
|
||||
# used for %setup only
|
||||
# leave upstream tar-balls untouched for integrity checks.
|
||||
%define upstream_version 1.8.0
|
||||
%define upstream_version 1.8.1
|
||||
|
||||
Name: openafs
|
||||
|
||||
Version: 1.8.0
|
||||
Version: 1.8.1
|
||||
Release: 0
|
||||
Summary: OpenAFS Distributed File System
|
||||
License: IPL-1.0
|
||||
@ -92,18 +92,12 @@ Source56: openafs.CellAlias
|
||||
Source57: openafs.ThisCell
|
||||
Source58: openafs.cacheinfo
|
||||
Source99: openafs.changes
|
||||
# PATCH-FIX-UPSTREAM backport upstream patch
|
||||
Patch0: add_support_fo_arm64_linux26.patch
|
||||
# PATCH-FIX-UPSTREAM backport upstream patch
|
||||
Patch1: dont_require_AFS_SYSCALL.patch
|
||||
# PATCH-FIX-UPSTREAM backport upstream patch
|
||||
Patch2: add_AFS_STRINGIZE_macro.patch
|
||||
# PATCH-FIX-UPSTREAM backport upstream patch
|
||||
Patch3: avoid_double_param_in_arm64_kernel.patch
|
||||
# PATCH-FIX-UPSTREAM make configure detect ncurses 6 correctly
|
||||
Patch4: openafs-1.8.x.ncurses6.patch
|
||||
# PATCH-SUSE-SPECIFIC make KMP work again
|
||||
Patch5: add_arch_to_linux_kernel_make.patch
|
||||
# PATCH-KERNEL-4.18-timespec64 Update to Linux struct iattr->ia_ctime to timespec64 with 4.18
|
||||
Patch1: use_timespec64_for_kernel_4.18.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
#
|
||||
@ -311,11 +305,8 @@ for src_file in %{S:0} %{S:1}; do
|
||||
done
|
||||
|
||||
%setup -q -n openafs-%{upstream_version} -T -b 0 -b 1
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch5 -p1
|
||||
%patch1 -p1
|
||||
|
||||
%if %{run_regen}
|
||||
%patch4 -p1
|
||||
|
57
use_timespec64_for_kernel_4.18.patch
Normal file
57
use_timespec64_for_kernel_4.18.patch
Normal file
@ -0,0 +1,57 @@
|
||||
--- openafs-1.8.1/./src/afs/LINUX/osi_file.c.orig 2018-08-16 14:41:44.505768721 +0200
|
||||
+++ openafs-1.8.1/./src/afs/LINUX/osi_file.c 2018-08-16 14:42:27.422432188 +0200
|
||||
@@ -23,7 +23,11 @@
|
||||
#include "osi_compat.h"
|
||||
|
||||
#ifndef CURRENT_TIME
|
||||
-#define CURRENT_TIME (current_kernel_time())
|
||||
+# ifdef IATTR_TAKES_64BIT_TIME
|
||||
+# define CURRENT_TIME (current_kernel_time64())
|
||||
+# else
|
||||
+# define CURRENT_TIME (current_kernel_time())
|
||||
+# endif
|
||||
#endif
|
||||
|
||||
int cache_fh_type = -1;
|
||||
--- openafs-1.8.1/src/config/afsconfig.h.in.orig 2018-08-16 15:04:41.102698738 +0200
|
||||
+++ openafs-1.8.1/src/config/afsconfig.h.in 2018-08-16 15:05:21.079300996 +0200
|
||||
@@ -1023,6 +1023,9 @@
|
||||
/* define if hlist iterators don't need a node parameter */
|
||||
#undef HLIST_ITERATOR_NO_NODE
|
||||
|
||||
+/* define if struct iattr->ia_ctime takes struct timespec64 */
|
||||
+#undef IATTR_TAKES_64BIT_TIME
|
||||
+
|
||||
/* define to disable some gcc warnings in warnings-as-errors mode */
|
||||
#undef IGNORE_SOME_GCC_WARNINGS
|
||||
|
||||
--- openafs-1.8.1/src/cf/linux-test4.m4.orig 2018-07-28 23:17:32.000000000 +0200
|
||||
+++ openafs-1.8.1/src/cf/linux-test4.m4 2018-08-16 15:08:39.378287300 +0200
|
||||
@@ -183,6 +183,17 @@
|
||||
[])
|
||||
])
|
||||
|
||||
+AC_DEFUN([LINUX_IATTR_64BIT_TIME], [
|
||||
+ AC_CHECK_LINUX_BUILD([whether struct iattr->ia_ctime takes struct timespec64 or 32-bit struct timespec],
|
||||
+ [ac_cv_linux_func_iattr_ctime_takes_timespec64],
|
||||
+ [#include <linux/fs.h>
|
||||
+ #include <linux/timekeeping.h>],
|
||||
+ [struct iattr _attrs;
|
||||
+ _attrs.ia_ctime = current_kernel_time64();],
|
||||
+ [IATTR_TAKES_64BIT_TIME],
|
||||
+ [define if struct iattr->ia_ctime takes struct timespec64],
|
||||
+ [])
|
||||
+])
|
||||
|
||||
|
||||
AC_DEFUN([LINUX_AOP_WRITEBACK_CONTROL], [
|
||||
--- openafs-1.8.1/src/cf/linux-kernel-assorted.m4.orig 2018-08-16 15:24:18.672533975 +0200
|
||||
+++ openafs-1.8.1/src/cf/linux-kernel-assorted.m4 2018-08-16 15:25:08.005280795 +0200
|
||||
@@ -9,6 +9,7 @@
|
||||
LINUX_D_PATH_TAKES_STRUCT_PATH
|
||||
LINUX_NEW_EXPORT_OPS
|
||||
LINUX_INODE_SETATTR_RETURN_TYPE
|
||||
+LINUX_IATTR_64BIT_TIME
|
||||
LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
|
||||
LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
|
||||
LINUX_IOP_I_PERMISSION_TAKES_FLAGS
|
Loading…
Reference in New Issue
Block a user