diff --git a/kmod/src/Makefile.kernelcompat b/kmod/src/Makefile.kernelcompat index 2dd1c573..7a587ff0 100644 --- a/kmod/src/Makefile.kernelcompat +++ b/kmod/src/Makefile.kernelcompat @@ -297,6 +297,15 @@ ifneq (,$(shell grep 'const struct attribute_group ..default_groups;' include/li ccflags-y += -DKC_KOBJECT_DEFAULT_GROUPS endif +# +# v5.19-rc3-395-g67235182a41c +# +# Adds buffer_migrate_folio(), similar to other fss. Quote willy: "If the filesystem +# implements migrate_folio and writepages, there is no need for a writepage implementation." +ifneq (,$(shell grep 'int buffer_migrate_folio.struct address_space' include/linux/buffer_head.h)) +ccflags-y += -DKC_HAVE_BUFFER_MIGRATE_FOLIO +endif + # # v6.15-13744-g41cb08555c41 # diff --git a/kmod/src/data.c b/kmod/src/data.c index daef52fb..9ba3dcb9 100644 --- a/kmod/src/data.c +++ b/kmod/src/data.c @@ -2239,6 +2239,9 @@ const struct address_space_operations scoutfs_file_aops = { .dirty_folio = block_dirty_folio, .invalidate_folio = block_invalidate_folio, .read_folio = scoutfs_read_folio, +#ifdef KC_HAVE_BUFFER_MIGRATE_FOLIO + .migrate_folio = buffer_migrate_folio, +#endif #else .readpage = scoutfs_readpage, #endif