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
#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])
{
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;
{
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;