diff --git a/kmod/src/Makefile.kernelcompat b/kmod/src/Makefile.kernelcompat index 60d3b5b4..f98df880 100644 --- a/kmod/src/Makefile.kernelcompat +++ b/kmod/src/Makefile.kernelcompat @@ -607,3 +607,11 @@ endif ifneq (,$(shell grep 'ssize_t generic_file_splice_read.struct file' include/linux/fs.h)) ccflags-y += -DKC_HAVE_GENERIC_FILE_SPLICE_READ endif + +# +# v4.6-rc3-29-g6192269444eb +# +# Adds .iterate_shared readdir() iterator vfs method. +ifneq (,$(shell grep 'iterate_shared...struct file.., struct dir_context' include/linux/fs.h)) +ccflags-y += -DKC_HAVE_ITERATE_SHARED +endif diff --git a/kmod/src/dir.c b/kmod/src/dir.c index 4d7a9268..265c8a69 100644 --- a/kmod/src/dir.c +++ b/kmod/src/dir.c @@ -2041,7 +2041,11 @@ const struct inode_operations scoutfs_symlink_iops = { }; const struct file_operations scoutfs_dir_fops = { +#ifdef KC_HAVE_ITERATE_SHARED + .iterate_shared = scoutfs_readdir, +#else .iterate = scoutfs_readdir, +#endif #ifdef KC_FMODE_KABI_ITERATE .open = scoutfs_dir_open, #endif