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:
parent
de0a1c099b
commit
ddd052aa83
@ -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
12
configure
vendored
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user