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 <behlendorf1@llnl.gov>
Closes #296
This commit is contained in:
Brian Behlendorf 2011-08-05 16:55:04 -07:00
parent de0a1c099b
commit ddd052aa83
2 changed files with 9 additions and 9 deletions

View File

@ -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])

12
configure vendored
View File

@ -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;