diff --git a/kmod/src/Makefile.kernelcompat b/kmod/src/Makefile.kernelcompat index 19e7e86f..22fd9147 100644 --- a/kmod/src/Makefile.kernelcompat +++ b/kmod/src/Makefile.kernelcompat @@ -555,3 +555,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 75cad786..8fa470ea 100644 --- a/kmod/src/dir.c +++ b/kmod/src/dir.c @@ -2035,7 +2035,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