]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Linux 2.6.35 compat, const struct xattr_handler
authorBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 11 Feb 2011 00:16:52 +0000 (16:16 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 11 Feb 2011 00:29:00 +0000 (16:29 -0800)
The const keyword was added to the 'struct xattr_handler' in the
generic Linux super_block structure.  To handle this we define an
appropriate xattr_handler_t typedef which can be used.  This was
the preferred solution because it keeps the code clean and readable.

52 files changed:
Makefile.in
cmd/Makefile.in
cmd/zdb/Makefile.in
cmd/zfs/Makefile.in
cmd/zinject/Makefile.in
cmd/zpios/Makefile.in
cmd/zpool/Makefile.in
cmd/zpool_id/Makefile.in
cmd/zpool_layout/Makefile.in
cmd/ztest/Makefile.in
config/kernel-xattr-handler.m4 [new file with mode: 0644]
config/kernel.m4
configure
etc/Makefile.in
include/Makefile.in
include/linux/Makefile.am
include/linux/Makefile.in
include/linux/xattr_compat.h [new file with mode: 0644]
include/sys/Makefile.in
include/sys/fm/Makefile.in
include/sys/fm/fs/Makefile.in
include/sys/fs/Makefile.in
include/sys/zpl.h
lib/Makefile.in
lib/libavl/Makefile.in
lib/libefi/Makefile.in
lib/libnvpair/Makefile.in
lib/libspl/Makefile.in
lib/libspl/asm-generic/Makefile.in
lib/libspl/asm-i386/Makefile.in
lib/libspl/asm-x86_64/Makefile.in
lib/libspl/include/Makefile.in
lib/libspl/include/ia32/Makefile.in
lib/libspl/include/ia32/sys/Makefile.in
lib/libspl/include/rpc/Makefile.in
lib/libspl/include/sys/Makefile.in
lib/libspl/include/sys/dktp/Makefile.in
lib/libspl/include/sys/sysevent/Makefile.in
lib/libspl/include/util/Makefile.in
lib/libunicode/Makefile.in
lib/libuutil/Makefile.in
lib/libzfs/Makefile.in
lib/libzpool/Makefile.in
man/Makefile.in
man/man8/Makefile.in
module/zfs/zpl_xattr.c
scripts/Makefile.in
scripts/zpios-profile/Makefile.in
scripts/zpios-test/Makefile.in
scripts/zpool-config/Makefile.in
scripts/zpool-layout/Makefile.in
zfs_config.h.in

index 0d10478d86b922166c35c9a9dd5d5b98c4512b74..f772c3ba4190fba69df361a7c1dfaa4a532393dd 100644 (file)
@@ -72,6 +72,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 016045a6a65947fe3d0f0e5eb16ef6c6aaf92107..9c56ab45fd8c6a7fd196b3ef90fc1fbc4c79b385 100644 (file)
@@ -57,6 +57,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 08f8377e303ad68ed2800bc9ebbbb23e821831bb..8d215ea477cdc954d8e8292b922a4548892675c6 100644 (file)
@@ -60,6 +60,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 44fff71f1466682efaf0a444103c9708092860f9..4db26327171004175a1a729a170905b693711734 100644 (file)
@@ -60,6 +60,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 1141281002c4922b733b27fc598eb87105a2bd50..6952f9c2b6eeb49f0fadcd7e0d0d676204b91dbe 100644 (file)
@@ -60,6 +60,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 69747f368da71f9ef700a3d7dc84be61e78a2af9..e280583191c4675ea0ba188d002a1eef0e0a2526 100644 (file)
@@ -60,6 +60,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index f800e6bc0cb1d8b6f8ca0e9b4f8ddde252b12c2f..c19f9bc7ce3aeec7247a446b121b89654f2dff9b 100644 (file)
@@ -60,6 +60,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 5d32e8106ec89ac2c7f997537263ffae9e0fab7e..828621d87e77293e2f17bb2ce552c212ce92f786 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index ef53493a55cbcf7ef198bfa7c99679164049eff3..bc9f4658184d21399d454aabaebd44fb3288dad7 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index ec16a73942b3b5e1688f845bc45be387a1e4ea4d..ead68085ff7e0d3aafe860a5b308a19fd9809f29 100644 (file)
@@ -60,6 +60,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
diff --git a/config/kernel-xattr-handler.m4 b/config/kernel-xattr-handler.m4
new file mode 100644 (file)
index 0000000..fa72945
--- /dev/null
@@ -0,0 +1,32 @@
+dnl #
+dnl # 2.6.35 API change,
+dnl # The 'struct xattr_handler' was constified in the generic
+dnl # super_block structure.
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_CONST_XATTR_HANDLER],
+       [AC_MSG_CHECKING([whether super_block uses const struct xattr_hander])
+       ZFS_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+               #include <linux/xattr.h>
+
+               const struct xattr_handler xattr_test_handler = {
+                       .prefix = "test",
+                       .get    = NULL,
+                       .set    = NULL,
+               };
+
+               const struct xattr_handler *xattr_handlers[] = {
+                       &xattr_test_handler,
+               };
+       ],[
+               struct super_block sb;
+
+               sb.s_xattr = xattr_handlers;
+       ],[
+               AC_MSG_RESULT([yes])
+               AC_DEFINE(HAVE_CONST_XATTR_HANDLER, 1,
+                         [super_block uses const struct xattr_hander])
+       ],[
+               AC_MSG_RESULT([no])
+       ])
+])
index 2c83dc59069733b87a5cc5e5bcff663644471876..d1ed54fba7b6f39ebf0943827242dd4aec6d2d73 100644 (file)
@@ -28,6 +28,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
        ZFS_AC_KERNEL_GET_DISK_RO
        ZFS_AC_KERNEL_RQ_IS_SYNC
        ZFS_AC_KERNEL_RQ_FOR_EACH_SEGMENT
+       ZFS_AC_KERNEL_CONST_XATTR_HANDLER
 
        if test "$LINUX_OBJ" != "$LINUX"; then
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
index 716a73feef77e6737862a396bb2b92f1d3a3b04a..19123d9bee68208789c129b14cdfe53278ba79f7 100755 (executable)
--- a/configure
+++ b/configure
@@ -13816,6 +13816,83 @@ $as_echo "no" >&6; }
 
 
 
+fi
+
+       rm -Rf build
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether super_block uses const struct xattr_hander" >&5
+$as_echo_n "checking whether super_block uses const struct xattr_hander... " >&6; }
+
+
+cat confdefs.h - <<_ACEOF >conftest.c
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+               #include <linux/fs.h>
+               #include <linux/xattr.h>
+
+               const struct xattr_handler xattr_test_handler = {
+                       .prefix = "test",
+                       .get    = NULL,
+                       .set    = NULL,
+               };
+
+               const struct xattr_handler *xattr_handlers[] = {
+                       &xattr_test_handler,
+               };
+
+int
+main (void)
+{
+
+               struct super_block sb;
+
+               sb.s_xattr = xattr_handlers;
+
+  ;
+  return 0;
+}
+
+_ACEOF
+
+
+       rm -Rf build && mkdir -p build
+       echo "obj-m := conftest.o" >build/Makefile
+       if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CONST_XATTR_HANDLER 1
+_ACEOF
+
+
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+
+
 fi
 
        rm -Rf build
@@ -17343,6 +17420,83 @@ $as_echo "no" >&6; }
 
 
 
+fi
+
+       rm -Rf build
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether super_block uses const struct xattr_hander" >&5
+$as_echo_n "checking whether super_block uses const struct xattr_hander... " >&6; }
+
+
+cat confdefs.h - <<_ACEOF >conftest.c
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+               #include <linux/fs.h>
+               #include <linux/xattr.h>
+
+               const struct xattr_handler xattr_test_handler = {
+                       .prefix = "test",
+                       .get    = NULL,
+                       .set    = NULL,
+               };
+
+               const struct xattr_handler *xattr_handlers[] = {
+                       &xattr_test_handler,
+               };
+
+int
+main (void)
+{
+
+               struct super_block sb;
+
+               sb.s_xattr = xattr_handlers;
+
+  ;
+  return 0;
+}
+
+_ACEOF
+
+
+       rm -Rf build && mkdir -p build
+       echo "obj-m := conftest.o" >build/Makefile
+       if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CONST_XATTR_HANDLER 1
+_ACEOF
+
+
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+               { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+
+
 fi
 
        rm -Rf build
index 4d39394618af3cf6ee12badb1f840e1603d4c41e..b9f7f368513bf91433067833d5b1f66f3f0a7f57 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index f87cd7929c3a1dcb5a40b2cbc0e8cd4ecb209ff5..8be6edc8a723d77eb9423112a643e8436db1ce61 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 4ccd7b124507451ee3caab4e48d25d228d2e78ca..67b56f83d6cde15d99d86735bbcf8a9cb9d88c54 100644 (file)
@@ -2,6 +2,7 @@ COMMON_H =
 
 KERNEL_H = \
        $(top_srcdir)/include/linux/dcache_compat.h
+       $(top_srcdir)/include/linux/xattr_compat.h
 
 USER_H =
 
index 51d0a6d5bdf25f552d8c3a31b3ca0622c762fde0..bd6db6f53b38b240469619069e28a0e3887bf600 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
@@ -562,6 +563,7 @@ uninstall-am: uninstall-kernelHEADERS uninstall-libzfsHEADERS
        ps ps-am tags uninstall uninstall-am uninstall-kernelHEADERS \
        uninstall-libzfsHEADERS
 
+       $(top_srcdir)/include/linux/xattr_compat.h
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/include/linux/xattr_compat.h b/include/linux/xattr_compat.h
new file mode 100644 (file)
index 0000000..dfa92ac
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (C) 2011 Lawrence Livermore National Security, LLC.
+ */
+
+#ifndef _ZFS_XATTR_H
+#define _ZFS_XATTR_H
+
+/*
+ * 2.6.35 API change,
+ * The const keyword was added to the 'struct xattr_handler' in the
+ * generic Linux super_block structure.  To handle this we define an
+ * appropriate xattr_handler_t typedef which can be used.  This was
+ * the preferred solution because it keeps the code clean and readable.
+ */
+#ifdef HAVE_CONST_XATTR_HANDLER
+typedef const struct xattr_handler     xattr_handler_t;
+#else
+typedef struct xattr_handler           xattr_handler_t;
+#endif
+
+#endif /* _ZFS_XATTR_H */
index 1525d1d07aa4200bce0eb858c2840105453151f5..e95245f7e7d1926d21fad841da7f6af9a7a62342 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 4099398b32caaa13518158049a20364aa1db675f..fe92c17a04a863af5a96c8535ac6d68b6490ac1b 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index ddad52360dd6ebdb802f939321d1669d34e93356..2e78a764575dbe08b3b6bc7c8043d04b559039f2 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 903b08d37fff7d7d0d765486b3d88af045d5c51c..968a9f27f18b6f377cf3142ee78cffdf43732cf9 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 33f4f621f08b5053a4ffb423c4c0dc63207c08e0..b8c3d098546ddb0fcfd5adbb02788af4324dcfc1 100644 (file)
@@ -26,6 +26,7 @@
 #define        _SYS_ZPL_H
 
 #include <sys/vfs.h>
+#include <linux/xattr_compat.h>
 
 /* zpl_inode.c */
 extern const struct inode_operations zpl_inode_operations;
@@ -58,6 +59,6 @@ extern struct file_system_type zpl_fs_type;
 extern ssize_t zpl_xattr_list(struct dentry *dentry, char *buf, size_t size);
 extern int zpl_xattr_security_init(struct inode *ip, struct inode *dip);
 
-extern struct xattr_handler *zpl_xattr_handlers[];
+extern xattr_handler_t *zpl_xattr_handlers[];
 
 #endif /* _SYS_ZPL_H */
index d607102b11cdb1c30cb2cc7095e8cf6be0c4e50b..de0b8b71620c749d5296be65dd3aac27ae13c0b3 100644 (file)
@@ -57,6 +57,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 91590932a32ea0204704a45668a69236ea9b40d5..3c249ea7ec61dd147bc0b252c78d88957109e03f 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 7839c13540ff778ffc5c13eff282dd1ffd957ef0..f162acffe4b85b8086c9d4e5d16dc43cf92bcc19 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 0bafbab1c82c84f81222a87386f7f003136455eb..f0da5c4a9030e5c77404c13c6becd99141961cdb 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 8aa947ab4236d6081a0be5705f4468ad5ba6f59d..b21c56dbb3ed452e7d62e1e2eabecf29e6d04cbf 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 0a8ff7c258fc10d3a70d5fe0bf3eb84afae67c3e..7d304899503d4f6f0c8be360848f863ff248ad91 100644 (file)
@@ -58,6 +58,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 6ef74836a2f288a41a49479e09f8c751c5fbcccb..90502427416da5a8ed2e2b7d6c3398ec6a8999c1 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 5c1aeafeec786747316e3dd993f8512d205a2833..028d192988240e145e83a9bc89274cf2d7615057 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 0f2a688aef74ec4b38d9ba75ffc5bff4b738a671..d72b0aadd0f91ef15d7a6427a77bbe5b9b2ac497 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index d3a8f6fa25bbdaeb6097422839d4345b475993a4..295310bc68a2575c41fc85b53dc70c589836aebd 100644 (file)
@@ -57,6 +57,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 5f7e05fdd555f232408a749d08cd82b7ccbf66bc..a6f6072375f73f0cab32131a67ae2ca0375bcc9b 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 850f045421002ca0e6808c59f82282a02f961887..96fdca680597f390195e8adf03b52558cc0a7e86 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index f8f8294d9990ebf7d6fb48d1460641bd51a6d092..8bde0cbd6488f1430a74e7f9132eba3c532327aa 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 19b0f3bcb94d8fa7f7a0d7b174e1e9122d63df58..ec4a3a9dc74749b476f95f647aea3b2431272e90 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 96af2d3b1cf8bf3d5d204ecc93183e1e677a4530..8d712356664ecf7ecb777e99652e298b615892ec 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index bfaec7a2e3a28f893558c65aac3d68b37903a45d..daa1c57c8b6b25d653235b9c963b6aeb0b36ee99 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index fb075e8bf6d5ad32c4b2c5184f612fe16856d8f4..9cb8129692ccd304e8834cd1fdf9a834f0689b96 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 32d6a7404f4669753e3eaf7121feb20133a4dc5b..1cd7310e88982b0ff25a4db4d54921d694720457 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 1dbecc33528a6a8df263f92385e7e5a7126eb38d..000f3aa26fd26e24aeba072e6c1dd6d8c5110038 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 344612d31999c53d7df0a60fd74cc8f5261f5151..14a2b17cfe3f6b6b80e5d0ee2d90c4a64ae4bcd3 100644 (file)
@@ -59,6 +59,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 3dbed309472c277e0f6225cd9a3c26544f06315a..f0b9b705e4e722279b7b895fba2b8b67709c18d4 100644 (file)
@@ -57,6 +57,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index f3cd856375f8b14f2ffb0513c7146a693605b6e3..58e804b262815c2510befbe05d32faf1e151ea57 100644 (file)
@@ -57,6 +57,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index 910500a722d0a0f0ecc3c55e034c661ed92587d3..86e52f791ec762ef4a5049c43f58a3de545e8cfc 100644 (file)
@@ -305,7 +305,7 @@ zpl_xattr_user_set(struct inode *ip, const char *name,
        return (error);
 }
 
-struct xattr_handler zpl_xattr_user_handler = {
+xattr_handler_t zpl_xattr_user_handler = {
        .prefix = XATTR_USER_PREFIX,
        .get    = zpl_xattr_user_get,
        .set    = zpl_xattr_user_set,
@@ -351,7 +351,7 @@ zpl_xattr_trusted_set(struct inode *ip, const char *name,
        return (error);
 }
 
-struct xattr_handler zpl_xattr_trusted_handler = {
+xattr_handler_t zpl_xattr_trusted_handler = {
        .prefix = XATTR_TRUSTED_PREFIX,
        .get    = zpl_xattr_trusted_get,
        .set    = zpl_xattr_trusted_set,
@@ -415,13 +415,13 @@ zpl_xattr_security_init(struct inode *ip, struct inode *dip)
         return (error);
 }
 
-struct xattr_handler zpl_xattr_security_handler = {
+xattr_handler_t zpl_xattr_security_handler = {
        .prefix = XATTR_SECURITY_PREFIX,
        .get    = zpl_xattr_security_get,
        .set    = zpl_xattr_security_set,
 };
 
-struct xattr_handler *zpl_xattr_handlers[] = {
+xattr_handler_t *zpl_xattr_handlers[] = {
        &zpl_xattr_security_handler,
        &zpl_xattr_trusted_handler,
        &zpl_xattr_user_handler,
index 6653bf3851370f787149c8f7192274d34916c3fc..2b2e30d603583089974a27772f66fe77a271c569 100644 (file)
@@ -58,6 +58,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index fd95774cbe68ffc1534c53d4b46ae75ef781abf0..f369bbc2c1d5a79b5b8b5f4777586c1a46328ca5 100644 (file)
@@ -58,6 +58,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index fcb6dfedde570027a5ddf5294ba4c47534e1436d..9dfbe107f2ed42dde02359b827000983668e0625 100644 (file)
@@ -58,6 +58,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index da8b65e7c5905613d332ee523bede06a94604190..cc3e557e93f019f445a7a07f5d418e45af08c537 100644 (file)
@@ -58,6 +58,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index dde427b3ff6475d586e45ff75910e1c7227f4923..881676cddc71f55916aa1a134a1a0c6a868f512f 100644 (file)
@@ -58,6 +58,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
index f8e218259fa7a96a8df2b15094fcbfc7612ca21d..52061a039ff511771b66b150891b2b4173000071 100644 (file)
@@ -54,6 +54,9 @@
 /* blk_rq_sectors() is available */
 #undef HAVE_BLK_RQ_SECTORS
 
+/* super_block uses const struct xattr_hander */
+#undef HAVE_CONST_XATTR_HANDLER
+
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #undef HAVE_DLFCN_H