From 8efca09a5daa3cfc08d0d86e2fb48c9b8d1b270a Mon Sep 17 00:00:00 2001 From: Mark Vitale Date: Thu, 20 Oct 2016 00:49:37 -0400 Subject: [PATCH] Linux 4.9: inode_change_ok() becomes setattr_prepare() Linux commit 31051c85b5e2 "fs: Give dentry to inode_change_ok() instead of inode" renames and modifies inode_change_ok(inode, attrs) to setattr_prepare(dentry, attrs). Modify OpenAFS to cope. Reviewed-on: https://gerrit.openafs.org/12418 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk (cherry picked from commit 8aeb711eeaa5ddac5a74c354091e2d4f7ac0cd63) Change-Id: I7f08c57b7f61465a1ea18333306f52f77bd65084 Reviewed-on: https://gerrit.openafs.org/12480 Tested-by: BuildBot Reviewed-by: Mark Vitale Reviewed-by: Stephan Wiesand Tested-by: Stephan Wiesand --- acinclude.m4 | 3 +++ src/afs/LINUX/osi_file.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/acinclude.m4 b/acinclude.m4 index 9790a975e..bcf8ecf48 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1028,6 +1028,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) AC_CHECK_LINUX_FUNC([set_nlink], [#include ], [set_nlink(NULL, 1);]) + AC_CHECK_LINUX_FUNC([setattr_prepare], + [#include ], + [setattr_prepare(NULL, NULL);]) AC_CHECK_LINUX_FUNC([sock_create_kern], [#include ], [sock_create_kern(0, 0, 0, NULL);]) diff --git a/src/afs/LINUX/osi_file.c b/src/afs/LINUX/osi_file.c index ea0ea5d23..b230c0bf5 100644 --- a/src/afs/LINUX/osi_file.c +++ b/src/afs/LINUX/osi_file.c @@ -184,7 +184,11 @@ osi_UFSTruncate(struct osi_file *afile, afs_int32 asize) newattrs.ia_ctime = CURRENT_TIME; /* avoid notify_change() since it wants to update dentry->d_parent */ +#ifdef HAVE_LINUX_SETATTR_PREPARE + code = setattr_prepare(file_dentry(afile->filp), &newattrs); +#else code = inode_change_ok(inode, &newattrs); +#endif if (!code) code = afs_inode_setattr(afile, &newattrs); if (!code) -- 2.39.5