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