From c1573eacb18fb8ffcf80ef56caf36f2f9b0aae75 Mon Sep 17 00:00:00 2001 From: Auke Kok Date: Tue, 22 Apr 2025 23:33:56 -0400 Subject: [PATCH] set_blocksize() takes struct file argument In v6.9-rc4-8-gead083aeeed9, this now takes a struct file argument, adding to the ifdef salad we've got going on here. Signed-off-by: Auke Kok --- kmod/src/Makefile.kernelcompat | 8 ++++++++ kmod/src/super.c | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/kmod/src/Makefile.kernelcompat b/kmod/src/Makefile.kernelcompat index 1d2f1dea..6aab5ce7 100644 --- a/kmod/src/Makefile.kernelcompat +++ b/kmod/src/Makefile.kernelcompat @@ -281,6 +281,14 @@ 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 + # # v6.15-13744-g41cb08555c41 # diff --git a/kmod/src/super.c b/kmod/src/super.c index 0c5fce68..a6739963 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);