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
|
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
|
# used for %setup only
|
||||||
# leave upstream tar-balls untouched for integrity checks.
|
# leave upstream tar-balls untouched for integrity checks.
|
||||||
%define upstream_version 1.8.0
|
%define upstream_version 1.8.1
|
||||||
|
|
||||||
Name: openafs
|
Name: openafs
|
||||||
|
|
||||||
Version: 1.8.0
|
Version: 1.8.1
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: OpenAFS Distributed File System
|
Summary: OpenAFS Distributed File System
|
||||||
License: IPL-1.0
|
License: IPL-1.0
|
||||||
@ -92,18 +92,12 @@ Source56: openafs.CellAlias
|
|||||||
Source57: openafs.ThisCell
|
Source57: openafs.ThisCell
|
||||||
Source58: openafs.cacheinfo
|
Source58: openafs.cacheinfo
|
||||||
Source99: openafs.changes
|
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
|
# PATCH-FIX-UPSTREAM make configure detect ncurses 6 correctly
|
||||||
Patch4: openafs-1.8.x.ncurses6.patch
|
Patch4: openafs-1.8.x.ncurses6.patch
|
||||||
# PATCH-SUSE-SPECIFIC make KMP work again
|
# PATCH-SUSE-SPECIFIC make KMP work again
|
||||||
Patch5: add_arch_to_linux_kernel_make.patch
|
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
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -311,11 +305,8 @@ for src_file in %{S:0} %{S:1}; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
%setup -q -n openafs-%{upstream_version} -T -b 0 -b 1
|
%setup -q -n openafs-%{upstream_version} -T -b 0 -b 1
|
||||||
%patch0 -p1
|
|
||||||
%patch1 -p1
|
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
|
||||||
%if %{run_regen}
|
%if %{run_regen}
|
||||||
%patch4 -p1
|
%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