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>
|
#include <linux/fs.h>
|
||||||
],[
|
],[
|
||||||
void (*evict_inode) (struct inode *) = NULL;
|
void (*evict_inode) (struct inode *) = NULL;
|
||||||
struct super_operations sops __attribute__ ((unused));
|
struct super_operations sops __attribute__ ((unused)) = {
|
||||||
|
.evict_inode = evict_inode,
|
||||||
sops.evict_inode = evict_inode;
|
};
|
||||||
],[
|
],[
|
||||||
AC_MSG_RESULT(yes)
|
AC_MSG_RESULT(yes)
|
||||||
AC_DEFINE(HAVE_EVICT_INODE, 1, [sops->evict_inode() exists])
|
AC_DEFINE(HAVE_EVICT_INODE, 1, [sops->evict_inode() exists])
|
||||||
|
|
|
@ -14375,9 +14375,9 @@ main (void)
|
||||||
{
|
{
|
||||||
|
|
||||||
void (*evict_inode) (struct inode *) = NULL;
|
void (*evict_inode) (struct inode *) = NULL;
|
||||||
struct super_operations sops __attribute__ ((unused));
|
struct super_operations sops __attribute__ ((unused)) = {
|
||||||
|
.evict_inode = evict_inode,
|
||||||
sops.evict_inode = evict_inode;
|
};
|
||||||
|
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -18733,9 +18733,9 @@ main (void)
|
||||||
{
|
{
|
||||||
|
|
||||||
void (*evict_inode) (struct inode *) = NULL;
|
void (*evict_inode) (struct inode *) = NULL;
|
||||||
struct super_operations sops __attribute__ ((unused));
|
struct super_operations sops __attribute__ ((unused)) = {
|
||||||
|
.evict_inode = evict_inode,
|
||||||
sops.evict_inode = evict_inode;
|
};
|
||||||
|
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue