Linux 3.4: replace end_writeback with clear_inode
authorMarc Dionne <marc.c.dionne@gmail.com>
Tue, 29 May 2012 01:43:12 +0000 (21:43 -0400)
committerDerrick Brashear <shadow@dementix.org>
Tue, 29 May 2012 03:06:39 +0000 (20:06 -0700)
end_writeback() is renamed to clear_inode().  Add a configure test
and cope.

Change-Id: Icaf5b6b54d0ee377fabcf0b295d690eaa6b4be5e
Reviewed-on: http://gerrit.openafs.org/7503
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

acinclude.m4
src/afs/LINUX/osi_vfsops.c

index 9808931..b1a6d5d 100644 (file)
@@ -840,6 +840,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
 #include <linux/page-flags.h>],
                                     [struct page *_page;
                                       int bchecked = PageFsMisc(_page);])
+                AC_CHECK_LINUX_FUNC([clear_inode],
+                                    [#include <linux/fs.h>],
+                                    [clear_inode(NULL);])
                 AC_CHECK_LINUX_FUNC([current_kernel_time],
                                     [#include <linux/time.h>],
                                     [struct timespec s;
index 9bdc304..e6796ab 100644 (file)
@@ -283,7 +283,11 @@ afs_evict_inode(struct inode *ip)
        osi_Panic("inode freed while still hashed");
 
     truncate_inode_pages(&ip->i_data, 0);
+#if defined(HAVE_LINUX_CLEAR_INODE)
+    clear_inode(ip);
+#else
     end_writeback(ip);
+#endif
 
 #if !defined(STRUCT_SUPER_OPERATIONS_HAS_ALLOC_INODE)
     afs_osi_Free(ip->u.generic_ip, sizeof(struct vcache));