From 5b260e6b5483412fa782bec0c6b2c5edb55709b9 Mon Sep 17 00:00:00 2001 From: Auke Kok Date: Fri, 19 Jan 2024 12:15:50 -0800 Subject: [PATCH] block_write_begin() no longer is being passed aop_flags. The flag is now obsolete, we don't need to set flags here or pass them. Signed-off-by: Auke Kok --- kmod/src/Makefile.kernelcompat | 8 ++++++++ kmod/src/data.c | 14 +++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/kmod/src/Makefile.kernelcompat b/kmod/src/Makefile.kernelcompat index 7a579e22..54364a58 100644 --- a/kmod/src/Makefile.kernelcompat +++ b/kmod/src/Makefile.kernelcompat @@ -378,3 +378,11 @@ endif ifneq (,$(shell grep 'int mpage_read_folio.struct folio .folio' include/linux/mpage.h)) ccflags-y += -DKC_MPAGE_READ_FOLIO endif + +# +# v5.18-rc5-219-gb3992d1e2ebc +# +# block_write_begin() no longer is being passed aop_flags +ifneq (,$(shell grep -C1 'int block_write_begin' include/linux/buffer_head.h | tail -n 2 | grep 'unsigned flags')) +ccflags-y += -DKC_BLOCK_WRITE_BEGIN_AOP_FLAGS +endif diff --git a/kmod/src/data.c b/kmod/src/data.c index 6949fbea..990c9029 100644 --- a/kmod/src/data.c +++ b/kmod/src/data.c @@ -836,7 +836,10 @@ struct write_begin_data { static int scoutfs_write_begin(struct file *file, struct address_space *mapping, loff_t pos, - unsigned len, unsigned flags, + unsigned len, +#ifdef KC_BLOCK_WRITE_BEGIN_AOP_FLAGS + unsigned flags, +#endif struct page **pagep, void **fsdata) { struct inode *inode = mapping->host; @@ -871,13 +874,18 @@ retry: if (ret < 0) goto out; +#ifdef KC_BLOCK_WRITE_BEGIN_AOP_FLAGS /* can't re-enter fs, have trans */ flags |= AOP_FLAG_NOFS; +#endif /* generic write_end updates i_size and calls dirty_inode */ ret = scoutfs_dirty_inode_item(inode, wbd->lock) ?: - block_write_begin(mapping, pos, len, flags, pagep, - scoutfs_get_block_write); + block_write_begin(mapping, pos, len, +#ifdef KC_BLOCK_WRITE_BEGIN_AOP_FLAGS + flags, +#endif + pagep, scoutfs_get_block_write); if (ret < 0) { scoutfs_release_trans(sb); scoutfs_inode_index_unlock(sb, &wbd->ind_locks);