]>
Commit | Line | Data |
---|---|---|
739a1a82 RY |
1 | dnl # |
2 | dnl # 3.5.0 API change | |
3 | dnl # torvalds/linux@dbd5768f87ff6fb0a4fe09c4d7b6c4a24de99430 and | |
4 | dnl # torvalds/linux@7994e6f7254354e03028a11f98a27bd67dace9f1 reworked | |
5 | dnl # where inode_sync_wait() is called. | |
6 | dnl # | |
7 | dnl # Prior to these changes it would occur in end_writeback() but due | |
8 | dnl # to various issues (described in the above commits) it has been | |
9 | dnl # moved to evict(). This changes the ordering is which sync occurs | |
10 | dnl # but otherwise doesn't impact the zpl implementation. | |
11 | dnl # | |
12 | dnl # The major impact here is the renaming of end_writeback() to | |
13 | dnl # clear_inode(). However, care must be taken when detecting this | |
14 | dnl # API change because as recently as 2.6.35 there was a clear_inode() | |
15 | dnl # function. However, it was made obsolete by the evict_inode() API | |
16 | dnl # change at the same time. | |
17 | dnl # | |
18 | dnl # Therefore, to ensure we have the correct API we only allow the | |
19 | dnl # clear_inode() compatibility code to be defined iff the evict_inode() | |
20 | dnl # functionality is also detected. | |
21 | dnl # | |
608f8749 BB |
22 | AC_DEFUN([ZFS_AC_KERNEL_SRC_CLEAR_INODE], [ |
23 | ZFS_LINUX_TEST_SRC([clear_inode], [ | |
70574182 ED |
24 | #include <linux/fs.h> |
25 | ], [ | |
26 | clear_inode(NULL); | |
608f8749 BB |
27 | ]) |
28 | ]) | |
29 | ||
30 | AC_DEFUN([ZFS_AC_KERNEL_CLEAR_INODE], [ | |
31 | AC_MSG_CHECKING([whether clear_inode() is available]) | |
32 | ZFS_LINUX_TEST_RESULT_SYMBOL([clear_inode], | |
33 | [clear_inode], [fs/inode.c], [ | |
70574182 ED |
34 | AC_MSG_RESULT(yes) |
35 | AC_DEFINE(HAVE_CLEAR_INODE, 1, [clear_inode() is available]) | |
36 | ], [ | |
37 | AC_MSG_RESULT(no) | |
38 | ]) | |
739a1a82 | 39 | ]) |