summaryrefslogtreecommitdiffstats
path: root/config/kernel-clear-inode.m4
blob: e3eace2b26a7d79691ca63d98679f07f35955c8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
dnl #
dnl # 3.5.0 API change
dnl # torvalds/linux@dbd5768f87ff6fb0a4fe09c4d7b6c4a24de99430 and
dnl # torvalds/linux@7994e6f7254354e03028a11f98a27bd67dace9f1 reworked
dnl # where inode_sync_wait() is called.
dnl #
dnl # Prior to these changes it would occur in end_writeback() but due
dnl # to various issues (described in the above commits) it has been
dnl # moved to evict().   This changes the ordering is which sync occurs
dnl # but otherwise doesn't impact the zpl implementation.
dnl #
dnl # The major impact here is the renaming of end_writeback() to
dnl # clear_inode().  However, care must be taken when detecting this
dnl # API change because as recently as 2.6.35 there was a clear_inode()
dnl # function.  However, it was made obsolete by the evict_inode() API
dnl # change at the same time.
dnl #
dnl # Therefore, to ensure we have the correct API we only allow the
dnl # clear_inode() compatibility code to be defined iff the evict_inode()
dnl # functionality is also detected.
dnl #
AC_DEFUN([ZFS_AC_KERNEL_CLEAR_INODE], [
	ZFS_CHECK_SYMBOL_EXPORT(
		[clear_inode],
		[fs/inode.c],
		[AC_DEFINE(HAVE_CLEAR_INODE, 1,
		[clear_inode() is available])],
		[])
])