From 322640b7b5a5336e4681d77778736339164a4501 Mon Sep 17 00:00:00 2001
From: behlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>
Date: Mon, 11 Aug 2008 19:10:14 +0000
Subject: [PATCH] Include linux/uaccess.h compat changes.

git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@154 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
---
 autoconf/spl-build.m4          | 10 +++++++++-
 configure.ac                   |  1 +
 include/linux/uaccess_compat.h | 11 +++++++++++
 include/sys/proc.h             |  1 -
 include/sys/types.h            |  6 ++++++
 include/sys/vnode.h            |  1 -
 modules/splat/splat-internal.h |  5 -----
 7 files changed, 27 insertions(+), 8 deletions(-)
 create mode 100644 include/linux/uaccess_compat.h

diff --git a/autoconf/spl-build.m4 b/autoconf/spl-build.m4
index be0fa24790..84827cf9cc 100644
--- a/autoconf/spl-build.m4
+++ b/autoconf/spl-build.m4
@@ -570,9 +570,17 @@ AC_DEFUN([SPL_AC_TIMESPEC_SUB], [
 ])
 
 dnl #
-dnl # 2.6,26 API change
+dnl # 2.6.26 API change
 dnl # Definition of struct fdtable relocated to linux/fdtable.h
 dnl #
 AC_DEFUN([SPL_AC_FDTABLE_HEADER], [
 	SPL_CHECK_HEADER([linux/fdtable.h], [FDTABLE], [], [])
 ])
+
+dnl #
+dnl # 2.6.18 API change
+dnl # Added linux/uaccess.h
+dnl #
+AC_DEFUN([SPL_AC_UACCESS_HEADER], [
+	SPL_CHECK_HEADER([linux/uaccess.h], [UACCESS], [], [])
+])
diff --git a/configure.ac b/configure.ac
index 58d469e1b0..3a08237523 100644
--- a/configure.ac
+++ b/configure.ac
@@ -58,6 +58,7 @@ SPL_AC_SET_NORMALIZED_TIMESPEC_EXPORT
 SPL_AC_SET_NORMALIZED_TIMESPEC_INLINE
 SPL_AC_TIMESPEC_SUB
 SPL_AC_FDTABLE_HEADER
+SPL_AC_UACCESS_HEADER
 
 TOPDIR=`/bin/pwd`
 
diff --git a/include/linux/uaccess_compat.h b/include/linux/uaccess_compat.h
new file mode 100644
index 0000000000..a1bfa52a55
--- /dev/null
+++ b/include/linux/uaccess_compat.h
@@ -0,0 +1,11 @@
+#ifndef _SPL_UACCESS_COMPAT_H
+#define _SPL_UACCESS_COMPAT_H
+
+#ifdef HAVE_UACCESS_HEADER
+#include <linux/uaccess.h>
+#else
+#include <asm/uaccess.h>
+#endif
+
+#endif /* _SPL_UACCESS_COMPAT_H */
+
diff --git a/include/sys/proc.h b/include/sys/proc.h
index c6e4a13cf2..ab2425ce89 100644
--- a/include/sys/proc.h
+++ b/include/sys/proc.h
@@ -29,7 +29,6 @@
 
 #include <linux/proc_fs.h>
 #include <linux/kmod.h>
-#include <linux/uaccess.h>
 #include <linux/ctype.h>
 #include <linux/sysctl.h>
 #include <linux/seq_file.h>
diff --git a/include/sys/types.h b/include/sys/types.h
index 1dec7b8d0b..6336bb6de8 100644
--- a/include/sys/types.h
+++ b/include/sys/types.h
@@ -9,6 +9,12 @@ extern "C" {
 #include <sys/sysmacros.h>
 #include "spl_config.h"
 
+#include <linux/uaccess_compat.h>
+#include <linux/file_compat.h>
+#include <linux/list_compat.h>
+#include <linux/time_compat.h>
+#include <linux/bitops_compat.h>
+
 #ifndef HAVE_UINTPTR_T
 typedef unsigned long			uintptr_t;
 #endif
diff --git a/include/sys/vnode.h b/include/sys/vnode.h
index eca33f4b1c..7ff14692c6 100644
--- a/include/sys/vnode.h
+++ b/include/sys/vnode.h
@@ -34,7 +34,6 @@ extern "C" {
 #include <linux/module.h>
 #include <linux/syscalls.h>
 #include <linux/fcntl.h>
-#include <linux/uaccess.h>
 #include <linux/buffer_head.h>
 #include <linux/dcache.h>
 #include <linux/namei.h>
diff --git a/modules/splat/splat-internal.h b/modules/splat/splat-internal.h
index a9c8e434f0..bda56f1bc7 100644
--- a/modules/splat/splat-internal.h
+++ b/modules/splat/splat-internal.h
@@ -63,11 +63,6 @@
 #include <sys/atomic.h>
 #include <linux/cdev.h>
 
-#include <linux/file_compat.h>
-#include <linux/list_compat.h>
-#include <linux/time_compat.h>
-#include <linux/bitops_compat.h>
-
 #include "spl-device.h"
 #include "splat-ctl.h"