diff options
author | Brian Behlendorf <[email protected]> | 2011-08-05 16:55:04 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2011-08-08 16:42:09 -0700 |
commit | ddd052aa8311f846e3d3f7a9ddf1a21d317fb04a (patch) | |
tree | bfbfeabb2d13f1d1f9b057e4c45ce86da85b61a4 | |
parent | de0a1c099b7dc6722eb428838e893a4d9490a21e (diff) |
Improve HAVE_EVICT_INODE check
The hardened gentoo kernel defines all of the super block
operation callbacks as const. This prevents the autoconf test
from assigning the callback and results in a false negative.
By moving the assignment in to the declaration we can avoid
this issue and get a correct result for this patched kernel.
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #296
-rw-r--r-- | config/kernel-evict-inode.m4 | 6 | ||||
-rwxr-xr-x | configure | 12 |
2 files changed, 9 insertions, 9 deletions
diff --git a/config/kernel-evict-inode.m4 b/config/kernel-evict-inode.m4 index f748898c3..0700792f9 100644 --- a/config/kernel-evict-inode.m4 +++ b/config/kernel-evict-inode.m4 @@ -9,9 +9,9 @@ AC_DEFUN([ZFS_AC_KERNEL_EVICT_INODE], [ #include <linux/fs.h> ],[ void (*evict_inode) (struct inode *) = NULL; - struct super_operations sops __attribute__ ((unused)); - - sops.evict_inode = evict_inode; + struct super_operations sops __attribute__ ((unused)) = { + .evict_inode = evict_inode, + }; ],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_EVICT_INODE, 1, [sops->evict_inode() exists]) @@ -14375,9 +14375,9 @@ main (void) { void (*evict_inode) (struct inode *) = NULL; - struct super_operations sops __attribute__ ((unused)); - - sops.evict_inode = evict_inode; + struct super_operations sops __attribute__ ((unused)) = { + .evict_inode = evict_inode, + }; ; return 0; @@ -18733,9 +18733,9 @@ main (void) { void (*evict_inode) (struct inode *) = NULL; - struct super_operations sops __attribute__ ((unused)); - - sops.evict_inode = evict_inode; + struct super_operations sops __attribute__ ((unused)) = { + .evict_inode = evict_inode, + }; ; return 0; |