SHA256
1
0
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:
Christof Hanke 2018-08-18 08:24:54 +00:00 committed by Git OBS Bridge
parent 5828a742ca
commit d4bcbf7d60
22 changed files with 2447 additions and 94681 deletions

96439
ChangeLog

File diff suppressed because it is too large Load Diff

View File

@ -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
View 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.

View File

@ -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

View File

@ -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 */

View File

@ -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

View File

@ -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)

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e26f3bb399f524b4978543eb3ec169fd58f2d409cf4bc22c75c65fb9b09f12e8
size 3801291

View File

@ -1 +0,0 @@
b66890fabf87b64c8eac6ec68d4b60c5 /home/kaduk/openafs/1.8.0/openafs-1.8.0-doc.tar.bz2

View File

@ -1 +0,0 @@
e26f3bb399f524b4978543eb3ec169fd58f2d409cf4bc22c75c65fb9b09f12e8 openafs-1.8.0-doc.tar.bz2

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:63fae6b3a4339e4a40945fae1afb9b99a5e7f8e8dbde668938ab8c4ff569fd7d
size 15113300

View File

@ -1 +0,0 @@
75fa969fc39f8cf652e1283670f627dc /home/kaduk/openafs/1.8.0/openafs-1.8.0-src.tar.bz2

View File

@ -1 +0,0 @@
63fae6b3a4339e4a40945fae1afb9b99a5e7f8e8dbde668938ab8c4ff569fd7d openafs-1.8.0-src.tar.bz2

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1efe676124e253bbb8aed5c74ad89497daf9ced2fab3ec314e7f6da35b9bb775
size 3802825

View File

@ -0,0 +1 @@
909b073bb280940c1c273676a2692e6a /home/kaduk/openafs/1.8.1/openafs-1.8.1-doc.tar.bz2

View File

@ -0,0 +1 @@
1efe676124e253bbb8aed5c74ad89497daf9ced2fab3ec314e7f6da35b9bb775 openafs-1.8.1-doc.tar.bz2

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2f3c13710839510bca985deb6344aeeab72aff3c51b0269e578c7b4ccb8a5638
size 15115755

View File

@ -0,0 +1 @@
722ddf9e5a283271f53631c6648549f5 /home/kaduk/openafs/1.8.1/openafs-1.8.1-src.tar.bz2

View File

@ -0,0 +1 @@
2f3c13710839510bca985deb6344aeeab72aff3c51b0269e578c7b4ccb8a5638 openafs-1.8.1-src.tar.bz2

View File

@ -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

View File

@ -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

View 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