zfsonlinux/spl — Issue #79: spl-0.6.0-rc6 module compile error against linux kernel 3.2.1
Author: struanb
Created: 2012-01-22 13:09:23+00:00
State: open

Module compilation fails with the error:

make[3]: Entering directory `/usr/src/Linux/linux-3.2.1'
CC [M] /usr/src/ZFS/spl-0.6.0-rc6/module/spl/../../module/spl/spl-debug.o
/usr/src/ZFS/spl-0.6.0-rc6/module/spl/../../module/spl/spl-debug.c: In function 'spl_debug_dump_all_pages':
/usr/src/ZFS/spl-0.6.0-rc6/module/spl/../../module/spl/spl-debug.c:963: error: too few arguments to function 'filp->f_op->fsync'
make[5]: *** [/usr/src/ZFS/spl-0.6.0-rc6/module/spl/../../module/spl/spl-debug.o] Error 1
make[4]: *** [/usr/src/ZFS/spl-0.6.0-rc6/module/spl] Error 2
make[3]: *** [_module_/usr/src/ZFS/spl-0.6.0-rc6/module] Error 2

./configure reports:

checking whether file_fsync() wants 3 args... no

spl-build.m4's configure test checks the prototype for file_fsync against linux/buffer_head.h. But file_fsync is no longer mentioned in that header file.

Instead linux/fs.h declares the following (which may or may not be related):

extern int generic_file_fsync(struct file *, loff_t, loff_t, int);