diff --git a/kmod/src/Makefile.kernelcompat b/kmod/src/Makefile.kernelcompat index d289d4bc..d8e55b11 100644 --- a/kmod/src/Makefile.kernelcompat +++ b/kmod/src/Makefile.kernelcompat @@ -607,3 +607,11 @@ endif ifneq (,$(shell grep 'int buffer_migrate_folio.struct address_space' include/linux/buffer_head.h)) ccflags-y += -DKC_HAVE_BUFFER_MIGRATE_FOLIO 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 1199d13a..2e5168b5 100644 --- a/kmod/src/dir.c +++ b/kmod/src/dir.c @@ -2039,7 +2039,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