On Tue, Jan 09, 2018 at 11:08:18PM -0600, Benjamin Kaduk wrote:
> So the security update for meltdown/spectre changed the kernel ABI?
> That's kind of unfortunate; usually Ben tries pretty hard to avoid
> doing so.

Yes, it was probably necessary (other postponed fixes requiring new ABI
were added as well).
I managed to create working openafs-modules-dkms by adding attached patch
to openafs source package (works with both jessie and backport versions)...

-- 
Zdenek Salvet                                              sal...@ics.muni.cz 
Institute of Computer Science of Masaryk University, Brno, Czech Republic
and CESNET, z.s.p.o., Prague, Czech Republic
Phone: ++420-549 49 6534                           Fax: ++420-541 212 747
----------------------------------------------------------------------------
      Teamwork is essential -- it allows you to blame someone else.

Index: openafs-1.6.18.2/src/afs/LINUX/osi_file.c
===================================================================
--- openafs-1.6.18.2.orig/src/afs/LINUX/osi_file.c
+++ openafs-1.6.18.2/src/afs/LINUX/osi_file.c
@@ -16,6 +16,8 @@
 #include "afsincludes.h"	/* Afs-based standard headers */
 #include "afs/afs_stats.h"	/* afs statistics */
 #include <linux/namei.h>
+#include <linux/fs.h>
+#include <linux/version.h>
 
 #if defined(HAVE_LINUX_EXPORTFS_H)
 #include <linux/exportfs.h>
@@ -184,7 +186,14 @@ osi_UFSTruncate(struct osi_file *afile,
     newattrs.ia_ctime = CURRENT_TIME;
 
     /* avoid notify_change() since it wants to update dentry->d_parent */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,51)
+    {
+	struct dentry *dentry =  OSIFILE_DENTRY(afile);
+    	code = setattr_prepare(dentry, &newattrs);
+    }
+#else
     code = inode_change_ok(inode, &newattrs);
+#endif
     if (!code)
 	code = afs_inode_setattr(afile, &newattrs);
     if (!code)
Index: openafs-1.6.18.2/src/afs/LINUX/osi_machdep.h
===================================================================
--- openafs-1.6.18.2.orig/src/afs/LINUX/osi_machdep.h
+++ openafs-1.6.18.2/src/afs/LINUX/osi_machdep.h
@@ -292,6 +292,7 @@ struct uio {
 #define FILE_INODE(F) (F)->f_dentry->d_inode
 
 #define OSIFILE_INODE(a) FILE_INODE((a)->filp)
+#define OSIFILE_DENTRY(a) ((a)->filp)->f_dentry
 
 #if defined(AFS_LINUX_64BIT_KERNEL) && !defined(AFS_ALPHA_LINUX20_ENV) && !defined(AFS_IA64_LINUX20_ENV)
 # define NEED_IOCTL32

Reply via email to