about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/openafs
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-03-11 00:43:18 +0000
committerAlyssa Ross <hi@alyssa.is>2019-03-11 00:43:18 +0000
commita6dea5a6f496ea38f56e3c3b4c5d628361cc029f (patch)
tree8300ad67b0135e6816ab38a6ac6f8fdaeccda2f0 /nixpkgs/pkgs/servers/openafs
parent8779e0045c9f218caeb1dd1bcdc87e2715ed5be5 (diff)
parent5d3fd3674a66c5b1ada63e2eace140519849c967 (diff)
downloadnixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.tar
nixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.tar.gz
nixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.tar.bz2
nixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.tar.lz
nixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.tar.xz
nixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.tar.zst
nixlib-a6dea5a6f496ea38f56e3c3b4c5d628361cc029f.zip
Merge commit '5d3fd3674a66c5b1ada63e2eace140519849c967'
Diffstat (limited to 'nixpkgs/pkgs/servers/openafs')
-rw-r--r--nixpkgs/pkgs/servers/openafs/1.8/linux-4.20.patch62
-rw-r--r--nixpkgs/pkgs/servers/openafs/1.8/module.nix2
2 files changed, 64 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/openafs/1.8/linux-4.20.patch b/nixpkgs/pkgs/servers/openafs/1.8/linux-4.20.patch
new file mode 100644
index 000000000000..bb896d82b693
--- /dev/null
+++ b/nixpkgs/pkgs/servers/openafs/1.8/linux-4.20.patch
@@ -0,0 +1,62 @@
+--- a/src/afs/LINUX/osi_machdep.h
++++ b/src/afs/LINUX/osi_machdep.h
+@@ -75,7 +75,14 @@
+ #if defined(HAVE_LINUX_CRED_H)
+ #include "h/cred.h"
+ #endif
+-#if defined(HAVE_LINUX_CURRENT_KERNEL_TIME)
++
++#if defined(HAVE_LINUX_KTIME_GET_COARSE_REAL_TS64)
++static inline time_t osi_Time(void) {
++    struct timespec64 xtime;
++    ktime_get_coarse_real_ts64(&xtime);
++    return xtime.tv_sec;
++}
++#elif defined(HAVE_LINUX_CURRENT_KERNEL_TIME)
+ static inline time_t osi_Time(void) {
+     struct timespec xtime;
+     xtime = current_kernel_time();
+--- a/src/cf/linux-kernel-func.m4
++++ b/src/cf/linux-kernel-func.m4
+@@ -72,6 +72,10 @@ AC_CHECK_LINUX_FUNC([iter_file_splice_write],
+ AC_CHECK_LINUX_FUNC([kernel_setsockopt],
+                     [#include <linux/net.h>],
+                     [kernel_setsockopt(NULL, 0, 0, NULL, 0);])
++AC_CHECK_LINUX_FUNC([ktime_get_coarse_real_ts64],
++                    [#include <linux/time.h>],
++                    [struct timespec64 *s;
++                    ktime_get_coarse_real_ts64(s);])
+ AC_CHECK_LINUX_FUNC([locks_lock_file_wait],
+                     [#include <linux/fs.h>],
+                     [locks_lock_file_wait(NULL, NULL);])
+--- a/src/afs/LINUX/osi_misc.c
++++ b/src/afs/LINUX/osi_misc.c
+@@ -28,18 +28,6 @@
+ int afs_osicred_initialized = 0;
+ afs_ucred_t afs_osi_cred;
+ 
+-void
+-afs_osi_SetTime(osi_timeval_t * tvp)
+-{
+-    struct timespec tv;
+-    tv.tv_sec = tvp->tv_sec;
+-    tv.tv_nsec = tvp->tv_usec * NSEC_PER_USEC;
+-
+-    AFS_STATCNT(osi_SetTime);
+-
+-    do_settimeofday(&tv);
+-}
+-
+ void
+ osi_linux_mask(void)
+ {
+--- a/src/afs/LINUX/osi_prototypes.h
++++ b/src/afs/LINUX/osi_prototypes.h
+@@ -45,7 +45,6 @@ extern void osi_ioctl_init(void);
+ extern void osi_ioctl_clean(void);
+ 
+ /* osi_misc.c */
+-extern void afs_osi_SetTime(osi_timeval_t * tvp);
+ extern int osi_lookupname_internal(char *aname, int followlink,
+ 				   struct vfsmount **mnt, struct dentry **dpp);
+ extern int osi_lookupname(char *aname, uio_seg_t seg, int followlink,
diff --git a/nixpkgs/pkgs/servers/openafs/1.8/module.nix b/nixpkgs/pkgs/servers/openafs/1.8/module.nix
index 958fcd578c2b..36a73bf5878b 100644
--- a/nixpkgs/pkgs/servers/openafs/1.8/module.nix
+++ b/nixpkgs/pkgs/servers/openafs/1.8/module.nix
@@ -11,6 +11,8 @@ in stdenv.mkDerivation rec {
   name = "openafs-${version}-${kernel.modDirVersion}";
   inherit version src;
 
+  patches = [ ./linux-4.20.patch ];
+
   nativeBuildInputs = [ autoconf automake flex libtool_2 perl which yacc ]
     ++ kernel.moduleBuildDependencies;