diff --git a/kmod/src/Makefile.kernelcompat b/kmod/src/Makefile.kernelcompat index e8d23274..c99e046d 100644 --- a/kmod/src/Makefile.kernelcompat +++ b/kmod/src/Makefile.kernelcompat @@ -501,3 +501,11 @@ endif ifneq (,$(shell grep 'struct shrinker .shrinker_alloc' include/linux/shrinker.h)) ccflags-y += -DKC_SHRINKER_ALLOC endif + +# +# v6.9-rc4-8-gead083aeeed9 +# +# set_blocksize() now has a struct file arg. +ifneq (,$(shell grep -s 'int set_blocksize.struct file' include/linux/blkdev.h)) +ccflags-y += -DKC_BLKDEV_SET_BLOCKSIZE_FILE +endif diff --git a/kmod/src/super.c b/kmod/src/super.c index 51801718..2d806568 100644 --- a/kmod/src/super.c +++ b/kmod/src/super.c @@ -552,6 +552,7 @@ static int scoutfs_fill_super(struct super_block *sb, void *data, int silent) } sbi->meta_bdev_file = meta_bdev_file; sbi->meta_bdev = file_bdev(meta_bdev_file); + #else #ifdef KC_BLKDEV_PUT_HOLDER_ARG meta_bdev = blkdev_get_by_path(opts.metadev_path, SCOUTFS_META_BDEV_MODE, sb, NULL); @@ -567,7 +568,11 @@ static int scoutfs_fill_super(struct super_block *sb, void *data, int silent) sbi->meta_bdev = meta_bdev; #endif +#ifdef KC_BLKDEV_SET_BLOCKSIZE_FILE + ret = set_blocksize(sbi->meta_bdev_file, SCOUTFS_BLOCK_SM_SIZE); +#else ret = set_blocksize(sbi->meta_bdev, SCOUTFS_BLOCK_SM_SIZE); +#endif if (ret != 0) { scoutfs_err(sb, "failed to set metadev blocksize, returned %d", ret);