diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/kernel-current-time.m4 | 7 | ||||
-rw-r--r-- | config/kernel-inode-times.m4 | 25 | ||||
-rw-r--r-- | config/kernel.m4 | 1 |
3 files changed, 29 insertions, 4 deletions
diff --git a/config/kernel-current-time.m4 b/config/kernel-current-time.m4 index 2ede9ff38..c7d5c9b52 100644 --- a/config/kernel-current-time.m4 +++ b/config/kernel-current-time.m4 @@ -1,15 +1,14 @@ dnl # dnl # 4.9, current_time() added +dnl # 4.18, return type changed from timespec to timespec64 dnl # AC_DEFUN([ZFS_AC_KERNEL_CURRENT_TIME], [AC_MSG_CHECKING([whether current_time() exists]) ZFS_LINUX_TRY_COMPILE_SYMBOL([ #include <linux/fs.h> ], [ - struct inode ip; - struct timespec now __attribute__ ((unused)); - - now = current_time(&ip); + struct inode ip __attribute__ ((unused)); + ip.i_atime = current_time(&ip); ], [current_time], [fs/inode.c], [ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_CURRENT_TIME, 1, [current_time() exists]) diff --git a/config/kernel-inode-times.m4 b/config/kernel-inode-times.m4 new file mode 100644 index 000000000..f5818411a --- /dev/null +++ b/config/kernel-inode-times.m4 @@ -0,0 +1,25 @@ +dnl # +dnl # 4.18 API change +dnl # i_atime, i_mtime, and i_ctime changed from timespec to timespec64. +dnl # +AC_DEFUN([ZFS_AC_KERNEL_INODE_TIMES], [ + AC_MSG_CHECKING([whether inode->i_*time's are timespec64]) + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-Werror" + ZFS_LINUX_TRY_COMPILE([ + #include <linux/fs.h> + ],[ + struct inode ip; + struct timespec ts; + + memset(&ip, 0, sizeof(ip)); + ts = ip.i_mtime; + ],[ + AC_MSG_RESULT(no) + ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_INODE_TIMESPEC64_TIMES, 1, + [inode->i_*time's are timespec64]) + ]) + EXTRA_KCFLAGS="$tmp_flags" +]) diff --git a/config/kernel.m4 b/config/kernel.m4 index d5b69d682..8c2998204 100644 --- a/config/kernel.m4 +++ b/config/kernel.m4 @@ -31,6 +31,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ ZFS_AC_KERNEL_WAIT_ON_BIT ZFS_AC_KERNEL_WAIT_QUEUE_ENTRY_T ZFS_AC_KERNEL_WAIT_QUEUE_HEAD_ENTRY + ZFS_AC_KERNEL_INODE_TIMES ZFS_AC_KERNEL_INODE_LOCK ZFS_AC_KERNEL_GROUP_INFO_GID ZFS_AC_KERNEL_WRITE |