[packages/kernel] Initial update to 6.12.0

arekm arekm at pld-linux.org
Mon Nov 18 14:50:12 CET 2024


commit 5b944d9d13a13e698580a427dfafa8abd945c9a3
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Mon Nov 18 14:03:44 2024 +0100

    Initial update to 6.12.0

 kernel-aufs.patch       | 658 +++++++++++++++++++++++++-----------------------
 kernel-multiarch.config | 165 +++++++++---
 kernel-x86.config       |  14 +-
 kernel.spec             |  13 +-
 4 files changed, 492 insertions(+), 358 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index ed8a2620..bf900ea2 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -52,8 +52,8 @@
 %endif
 
 %define		rel		1
-%define		basever		6.11
-%define		postver		.8
+%define		basever		6.12
+%define		postver		.0
 
 # define this to '-%{basever}' for longterm branch
 %define		versuffix	%{nil}
@@ -104,7 +104,7 @@ Epoch:		3
 License:	GPL v2
 Group:		Base/Kernel
 Source0:	https://www.kernel.org/pub/linux/kernel/v6.x/linux-%{basever}.tar.xz
-# Source0-md5:	612a9feef07be8663098a0a58cddf7a6
+# Source0-md5:	844fae6a58c7f43af44d8cea8484b4a1
 %if "%{postver}" != ".0"
 Patch0:		https://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz
 # Patch0-md5:	af1a452e23327a6d6a51ac9a34fd188b
@@ -616,6 +616,7 @@ find -name '*.py' -print0 | \
 	tools/hv/lsvmbus \
 	tools/hv/vmbus_testing \
 	tools/kvm/kvm_stat/kvm_stat \
+	tools/net/sunrpc/xdrgen/xdrgen \
 	tools/testing/selftests/exec/binfmt_script.py
 
 find -name '*.pl' -print0 | \
@@ -632,9 +633,11 @@ find -name '*.pl' -print0 | \
 	scripts/stackdelta
 
 %{__sed} -i -e '1s,/usr/bin/env bash,%{__bash},' \
-	tools/testing/selftests/powerpc/security/mitigation-patching.sh \
+	scripts/coccicheck \
 	scripts/config \
-	scripts/coccicheck
+	scripts/decode_stacktrace.sh \
+	tools/testing/selftests/drivers/net/netcons_basic.sh \
+	tools/testing/selftests/powerpc/security/mitigation-patching.sh
 
 %build
 install -d %{objdir}
diff --git a/kernel-aufs.patch b/kernel-aufs.patch
index 60473f12..905cd70a 100644
--- a/kernel-aufs.patch
+++ b/kernel-aufs.patch
@@ -1,11 +1,11 @@
 SPDX-License-Identifier: GPL-2.0
-aufs6.11.2 kbuild patch
+aufs6.x-rcN kbuild patch
 
 diff --git a/fs/Kconfig b/fs/Kconfig
-index a46b0cbc4d8f..d90a3b0dbc53 100644
+index aae170fc2795..d5bb584649f5 100644
 --- a/fs/Kconfig
 +++ b/fs/Kconfig
-@@ -337,6 +337,7 @@ source "fs/sysv/Kconfig"
+@@ -341,6 +341,7 @@ source "fs/sysv/Kconfig"
  source "fs/ufs/Kconfig"
  source "fs/erofs/Kconfig"
  source "fs/vboxsf/Kconfig"
@@ -14,22 +14,22 @@ index a46b0cbc4d8f..d90a3b0dbc53 100644
  endif # MISC_FILESYSTEMS
  
 diff --git a/fs/Makefile b/fs/Makefile
-index 6ecc9b0a53f2..255420c2676e 100644
+index 61679fd587b7..b2539712b80d 100644
 --- a/fs/Makefile
 +++ b/fs/Makefile
-@@ -129,3 +129,4 @@ obj-$(CONFIG_EFIVAR_FS)		+= efivarfs/
- obj-$(CONFIG_EROFS_FS)		+= erofs/
+@@ -130,3 +130,4 @@ obj-$(CONFIG_EROFS_FS)		+= erofs/
  obj-$(CONFIG_VBOXSF_FS)		+= vboxsf/
  obj-$(CONFIG_ZONEFS_FS)		+= zonefs/
+ obj-$(CONFIG_BPF_LSM)		+= bpf_fs_kfuncs.o
 +obj-$(CONFIG_AUFS_FS)           += aufs/
 SPDX-License-Identifier: GPL-2.0
-aufs6.11.2 base patch
+aufs6.x-rcN base patch
 
 diff --git a/MAINTAINERS b/MAINTAINERS
-index cc40a9d9b8cd..ba788b0b667c 100644
+index 21fdaa19229a..e60ed502f8ef 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -3570,6 +3570,19 @@ F:	kernel/audit*
+@@ -3666,6 +3666,19 @@ F:	kernel/audit*
  F:	lib/*audit.c
  K:	\baudit_[a-z_0-9]\+\b
  
@@ -81,7 +81,7 @@ index 78a7bb28defe..479480f25a6c 100644
  
  static ssize_t loop_attr_show(struct device *dev, char *page,
 diff --git a/fs/dcache.c b/fs/dcache.c
-index 6386b9b625dd..e5f57c3cfbfc 100644
+index 0f6b16ba30d0..1ab11cad60e8 100644
 --- a/fs/dcache.c
 +++ b/fs/dcache.c
 @@ -1223,6 +1223,9 @@ enum d_walk_ret {
@@ -104,10 +104,10 @@ index 6386b9b625dd..e5f57c3cfbfc 100644
  {
  	struct dentry *this_parent, *dentry;
 diff --git a/fs/fcntl.c b/fs/fcntl.c
-index c28dc6c005f1..3491d46ac758 100644
+index 22dd9dcce7ec..460791727fd9 100644
 --- a/fs/fcntl.c
 +++ b/fs/fcntl.c
-@@ -35,7 +35,7 @@
+@@ -37,7 +37,7 @@
  
  #define SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT | O_NOATIME)
  
@@ -116,7 +116,7 @@ index c28dc6c005f1..3491d46ac758 100644
  {
  	struct inode * inode = file_inode(filp);
  	int error = 0;
-@@ -65,6 +65,8 @@ static int setfl(int fd, struct file * filp, unsigned int arg)
+@@ -67,6 +67,8 @@ static int setfl(int fd, struct file * filp, unsigned int arg)
  
  	if (filp->f_op->check_flags)
  		error = filp->f_op->check_flags(arg);
@@ -126,7 +126,7 @@ index c28dc6c005f1..3491d46ac758 100644
  		return error;
  
 diff --git a/fs/namespace.c b/fs/namespace.c
-index 155c6abda71d..ce44cfda1349 100644
+index d26f5e6d2ca3..85739e2d64c0 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
 @@ -966,6 +966,12 @@ static inline int check_mnt(struct mount *mnt)
@@ -143,7 +143,7 @@ index 155c6abda71d..ce44cfda1349 100644
   * vfsmount lock must be held for write
   */
 diff --git a/fs/splice.c b/fs/splice.c
-index 60aed8de21f8..04af758d332c 100644
+index 06232d7e505f..b15fd6073b6d 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
 @@ -933,7 +933,7 @@ static int warn_unsupported(struct file *file, const char *op)
@@ -156,10 +156,10 @@ index 60aed8de21f8..04af758d332c 100644
  {
  	if (unlikely(!out->f_op->splice_write))
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 6ca11e241a24..5092a7e8f9e9 100644
+index 3559446279c1..51b64b2ad82c 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -1121,6 +1121,7 @@ extern void fasync_free(struct fasync_struct *);
+@@ -1160,6 +1160,7 @@ extern void fasync_free(struct fasync_struct *);
  /* can be called from interrupts */
  extern void kill_fasync(struct fasync_struct **, int, int);
  
@@ -167,7 +167,7 @@ index 6ca11e241a24..5092a7e8f9e9 100644
  extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force);
  extern int f_setown(struct file *filp, int who, int force);
  extern void f_delown(struct file *filp);
-@@ -2042,6 +2043,7 @@ struct file_operations {
+@@ -2082,6 +2083,7 @@ struct file_operations {
  	int (*lock) (struct file *, int, struct file_lock *);
  	unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
  	int (*check_flags)(int);
@@ -189,10 +189,10 @@ index 217f7abf2cbf..0e17b8c23f10 100644
   * Acquire a lock.
   *
 diff --git a/include/linux/mnt_namespace.h b/include/linux/mnt_namespace.h
-index 8f882f5881e8..6b9808f09843 100644
+index 70b366b64816..08cfdabb2721 100644
 --- a/include/linux/mnt_namespace.h
 +++ b/include/linux/mnt_namespace.h
-@@ -7,12 +7,15 @@ struct mnt_namespace;
+@@ -10,6 +10,7 @@ struct mnt_namespace;
  struct fs_struct;
  struct user_namespace;
  struct ns_common;
@@ -200,7 +200,8 @@ index 8f882f5881e8..6b9808f09843 100644
  
  extern struct mnt_namespace *copy_mnt_ns(unsigned long, struct mnt_namespace *,
  		struct user_namespace *, struct fs_struct *);
- extern void put_mnt_ns(struct mnt_namespace *ns);
+@@ -17,6 +18,8 @@ extern void put_mnt_ns(struct mnt_namespace *ns);
+ DEFINE_FREE(put_mnt_ns, struct mnt_namespace *, if (!IS_ERR_OR_NULL(_T)) put_mnt_ns(_T))
  extern struct ns_common *from_mnt_ns(struct mnt_namespace *);
  
 +extern int is_current_mnt_ns(struct vfsmount *mnt);
@@ -221,10 +222,10 @@ index 9dec4861d09f..14583d846864 100644
 +			      loff_t *ppos, size_t len, unsigned int flags);
  #endif
 diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index 77e008239c6a..67dc035df216 100644
+index 536bd471557f..34b378cf7a95 100644
 --- a/kernel/locking/lockdep.c
 +++ b/kernel/locking/lockdep.c
-@@ -217,7 +217,7 @@ unsigned long max_lock_class_idx;
+@@ -218,7 +218,7 @@ unsigned long max_lock_class_idx;
  struct lock_class lock_classes[MAX_LOCKDEP_KEYS];
  DECLARE_BITMAP(lock_classes_in_use, MAX_LOCKDEP_KEYS);
  
@@ -233,7 +234,7 @@ index 77e008239c6a..67dc035df216 100644
  {
  	unsigned int class_idx = hlock->class_idx;
  
-@@ -238,6 +238,7 @@ static inline struct lock_class *hlock_class(struct held_lock *hlock)
+@@ -239,6 +239,7 @@ static inline struct lock_class *hlock_class(struct held_lock *hlock)
  	 */
  	return lock_classes + class_idx;
  }
@@ -242,13 +243,13 @@ index 77e008239c6a..67dc035df216 100644
  #ifdef CONFIG_LOCK_STAT
  static DEFINE_PER_CPU(struct lock_class_stats[MAX_LOCKDEP_KEYS], cpu_lock_stats);
 SPDX-License-Identifier: GPL-2.0
-aufs6.11.2 mmap patch
+aufs6.x-rcN mmap patch
 
 diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 72a1acd03675..7970af6dde6b 100644
+index b31283d81c52..644bd3d84cf7 100644
 --- a/fs/proc/base.c
 +++ b/fs/proc/base.c
-@@ -2213,7 +2213,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path)
+@@ -2270,7 +2270,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path)
  	rc = -ENOENT;
  	vma = find_exact_vma(mm, vm_start, vm_end);
  	if (vma && vma->vm_file) {
@@ -274,7 +275,7 @@ index c6e7ebc63756..d7ccfd909764 100644
  		ino = inode->i_ino;
  	}
 diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index 5f171ad7b436..6b10fe0d25d8 100644
+index e52bd96137a6..9494d69abaad 100644
 --- a/fs/proc/task_mmu.c
 +++ b/fs/proc/task_mmu.c
 @@ -264,7 +264,8 @@ static void get_vma_name(struct vm_area_struct *vma,
@@ -297,7 +298,7 @@ index 5f171ad7b436..6b10fe0d25d8 100644
  
  		dev = inode->i_sb->s_dev;
  		ino = inode->i_ino;
-@@ -3013,7 +3015,7 @@ static int show_numa_map(struct seq_file *m, void *v)
+@@ -3006,7 +3008,7 @@ static int show_numa_map(struct seq_file *m, void *v)
  	struct proc_maps_private *proc_priv = &numa_priv->proc_maps;
  	struct vm_area_struct *vma = v;
  	struct numa_maps *md = &numa_priv->md;
@@ -323,10 +324,10 @@ index bce674533000..b12b5a75c799 100644
  		ino = inode->i_ino;
  		pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
 diff --git a/include/linux/mm.h b/include/linux/mm.h
-index 147073601716..9de0f88adb93 100644
+index 61fff5d34ed5..94b66987b4bb 100644
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
-@@ -2459,6 +2459,43 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
+@@ -2469,6 +2469,43 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
  static inline struct vm_area_struct *vma_lookup(struct mm_struct *mm,
  						unsigned long addr);
  
@@ -371,7 +372,7 @@ index 147073601716..9de0f88adb93 100644
  		void *buf, int len, unsigned int gup_flags);
  extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
 diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index 485424979254..952e89999a0c 100644
+index 6e3bdf8e38bc..c70247dc7102 100644
 --- a/include/linux/mm_types.h
 +++ b/include/linux/mm_types.h
 @@ -572,6 +572,9 @@ struct vm_region {
@@ -384,7 +385,7 @@ index 485424979254..952e89999a0c 100644
  
  	int		vm_usage;	/* region usage count (access under nommu_region_sem) */
  	bool		vm_icache_flushed : 1; /* true if the icache has been flushed for
-@@ -736,6 +739,9 @@ struct vm_area_struct {
+@@ -747,6 +750,9 @@ struct vm_area_struct {
  	unsigned long vm_pgoff;		/* Offset (within vm_file) in PAGE_SIZE
  					   units */
  	struct file * vm_file;		/* File we map to (can be NULL). */
@@ -395,10 +396,10 @@ index 485424979254..952e89999a0c 100644
  
  #ifdef CONFIG_ANON_VMA_NAME
 diff --git a/kernel/fork.c b/kernel/fork.c
-index cc760491f201..2ef841e2f774 100644
+index 22f43721d031..03abd72b3353 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -733,7 +733,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
+@@ -730,7 +730,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
  		if (file) {
  			struct address_space *mapping = file->f_mapping;
  
@@ -408,19 +409,19 @@ index cc760491f201..2ef841e2f774 100644
  			if (vma_is_shared_maywrite(tmp))
  				mapping_allow_writable(mapping);
 diff --git a/mm/Makefile b/mm/Makefile
-index d2915f8c9dc0..b07f11a62f7c 100644
+index d5639b036166..bb57f616f032 100644
 --- a/mm/Makefile
 +++ b/mm/Makefile
-@@ -141,3 +141,4 @@ obj-$(CONFIG_HAVE_BOOTMEM_INFO_NODE) += bootmem_info.o
- obj-$(CONFIG_GENERIC_IOREMAP) += ioremap.o
+@@ -145,3 +145,4 @@ obj-$(CONFIG_GENERIC_IOREMAP) += ioremap.o
  obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o
  obj-$(CONFIG_EXECMEM) += execmem.o
+ obj-$(CONFIG_TMPFS_QUOTA) += shmem_quota.o
 +obj-y += prfile.o
 diff --git a/mm/filemap.c b/mm/filemap.c
-index 0ca9c1377b68..beacce26df57 100644
+index 56fa431c52af..d55fe4e7bcfd 100644
 --- a/mm/filemap.c
 +++ b/mm/filemap.c
-@@ -3673,7 +3673,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
+@@ -3707,7 +3707,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
  	vm_fault_t ret = VM_FAULT_LOCKED;
  
  	sb_start_pagefault(mapping->host->i_sb);
@@ -430,37 +431,10 @@ index 0ca9c1377b68..beacce26df57 100644
  	if (folio->mapping != mapping) {
  		folio_unlock(folio);
 diff --git a/mm/mmap.c b/mm/mmap.c
-index 18fddcce03b8..12868dc4ca75 100644
+index 79d541f1502b..50430bfa4d82 100644
 --- a/mm/mmap.c
 +++ b/mm/mmap.c
-@@ -181,7 +181,7 @@ static void remove_vma(struct vm_area_struct *vma, bool unreachable)
- 	if (vma->vm_ops && vma->vm_ops->close)
- 		vma->vm_ops->close(vma);
- 	if (vma->vm_file)
--		fput(vma->vm_file);
-+		vma_fput(vma);
- 	mpol_put(vma_policy(vma));
- 	if (unreachable)
- 		__vm_area_free(vma);
-@@ -598,7 +598,7 @@ static inline void vma_complete(struct vma_prepare *vp,
- 		if (vp->file) {
- 			uprobe_munmap(vp->remove, vp->remove->vm_start,
- 				      vp->remove->vm_end);
--			fput(vp->file);
-+			vma_fput(vp->vma);
- 		}
- 		if (vp->remove->anon_vma)
- 			anon_vma_merge(vp->vma, vp->remove);
-@@ -2487,7 +2487,7 @@ static int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma,
- 		goto out_free_mpol;
- 
- 	if (new->vm_file)
--		get_file(new->vm_file);
-+		vma_get_file(new);
- 
- 	if (new->vm_ops && new->vm_ops->open)
- 		new->vm_ops->open(new);
-@@ -2991,7 +2991,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
+@@ -1484,7 +1484,7 @@ static unsigned long __mmap_region(struct file *file, unsigned long addr,
  				 * and cause general protection fault
  				 * ultimately.
  				 */
@@ -469,89 +443,73 @@ index 18fddcce03b8..12868dc4ca75 100644
  				vm_area_free(vma);
  				vma = merge;
  				/* Update vm_flags to pick up the change. */
-@@ -3077,7 +3077,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
- 
- 	if (file || vma->vm_file) {
- unmap_and_free_vma:
--		fput(vma->vm_file);
-+		vma_fput(vma);
- 		vma->vm_file = NULL;
- 
- 		vma_iter_set(&vmi, vma->vm_end);
-@@ -3139,6 +3139,9 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
- 	unsigned long populate = 0;
+@@ -1654,6 +1654,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
  	unsigned long ret = -EINVAL;
  	struct file *file;
-+#if 1 /* IS_ENABLED(CONFIG_AUFS_FS) */
+ 	vm_flags_t vm_flags;
 +	struct file *prfile;
-+#endif
  
  	pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/mm/remap_file_pages.rst.\n",
  		     current->comm, current->pid);
-@@ -3197,6 +3200,32 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
- 	if (vma->vm_flags & VM_LOCKED)
- 		flags |= MAP_LOCKED;
+@@ -1696,14 +1697,16 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
  
-+#if 1 /* IS_ENABLED(CONFIG_AUFS_FS) */
+ 	/* Save vm_flags used to calculate prot and flags, and recheck later. */
+ 	vm_flags = vma->vm_flags;
+-	file = get_file(vma->vm_file);
 +	vma_get_file(vma);
 +	file = vma->vm_file;
 +	prfile = vma->vm_prfile;
-+	ret = security_mmap_file(vma->vm_file, prot, flags);
-+	if (!ret) {
-+		ret = do_mmap(vma->vm_file, start, size,
-+			      prot, flags, /*vm_flags*/0, pgoff, &populate, NULL);
-+		if (!IS_ERR_VALUE(ret) && file && prfile) {
-+			struct vm_area_struct *new_vma;
+ 
+ 	mmap_read_unlock(mm);
+ 
+ 	/* Call outside mmap_lock to be consistent with other callers. */
+ 	ret = security_mmap_file(file, prot, flags);
+ 	if (ret) {
+-		fput(file);
++		vma_fput(vma);
+ 		return ret;
+ 	}
+ 
+@@ -1711,7 +1714,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+ 
+ 	/* OK security check passed, take write lock + let it rip. */
+ 	if (mmap_write_lock_killable(mm)) {
+-		fput(file);
++		vma_fput(vma);
+ 		return -EINTR;
+ 	}
+ 
+@@ -1753,9 +1756,25 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+ 
+ 	ret = do_mmap(vma->vm_file, start, size,
+ 			prot, flags, 0, pgoff, &populate, NULL);
++	if (!IS_ERR_VALUE(ret) && file && prfile) {
++		struct vm_area_struct *new_vma;
 +
-+			new_vma = find_vma(mm, ret);
-+			if (!new_vma->vm_prfile)
-+				new_vma->vm_prfile = prfile;
-+			if (prfile)
-+				get_file(prfile);
-+		}
++		new_vma = find_vma(mm, ret);
++		if (!new_vma->vm_prfile)
++			new_vma->vm_prfile = prfile;
++		if (prfile)
++			get_file(prfile);
 +	}
++
+ out:
+ 	mmap_write_unlock(mm);
 +	/*
 +	 * two fput()s instead of vma_fput(vma),
 +	 * coz vma may not be available anymore.
 +	 */
-+	fput(file);
+ 	fput(file);
 +	if (prfile)
 +		fput(prfile);
-+#else
- 	file = get_file(vma->vm_file);
- 	ret = security_mmap_file(vma->vm_file, prot, flags);
- 	if (ret)
-@@ -3205,6 +3234,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
- 			prot, flags, 0, pgoff, &populate, NULL);
- out_fput:
- 	fput(file);
-+#endif /* CONFIG_AUFS_FS */
- out:
- 	mmap_write_unlock(mm);
  	if (populate)
-@@ -3555,7 +3585,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
- 		if (anon_vma_clone(new_vma, vma))
- 			goto out_free_mempol;
- 		if (new_vma->vm_file)
--			get_file(new_vma->vm_file);
-+			vma_get_file(new_vma);
- 		if (new_vma->vm_ops && new_vma->vm_ops->open)
- 			new_vma->vm_ops->open(new_vma);
- 		if (vma_link(mm, new_vma))
-@@ -3569,7 +3599,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
- 		new_vma->vm_ops->close(new_vma);
- 
- 	if (new_vma->vm_file)
--		fput(new_vma->vm_file);
-+		vma_fput(new_vma);
- 
- 	unlink_anon_vmas(new_vma);
- out_free_mempol:
+ 		mm_populate(ret, populate);
+ 	if (!IS_ERR_VALUE(ret))
 diff --git a/mm/nommu.c b/mm/nommu.c
-index 7296e775e04e..8d0180a7b370 100644
+index e9b5f527ab5b..0f069bf29964 100644
 --- a/mm/nommu.c
 +++ b/mm/nommu.c
-@@ -507,7 +507,7 @@ static void __put_nommu_region(struct vm_region *region)
+@@ -512,7 +512,7 @@ static void __put_nommu_region(struct vm_region *region)
  		up_write(&nommu_region_sem);
  
  		if (region->vm_file)
@@ -560,16 +518,16 @@ index 7296e775e04e..8d0180a7b370 100644
  
  		/* IO memory and memory shared directly out of the pagecache
  		 * from ramfs/tmpfs mustn't be released here */
-@@ -587,7 +587,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma)
- 	if (vma->vm_ops && vma->vm_ops->close)
- 		vma->vm_ops->close(vma);
+@@ -591,7 +591,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma)
+ {
+ 	vma_close(vma);
  	if (vma->vm_file)
 -		fput(vma->vm_file);
 +		vma_fput(vma);
  	put_nommu_region(vma->vm_region);
  	vm_area_free(vma);
  }
-@@ -1119,7 +1119,7 @@ unsigned long do_mmap(struct file *file,
+@@ -1123,7 +1123,7 @@ unsigned long do_mmap(struct file *file,
  					goto error_just_free;
  				}
  			}
@@ -578,7 +536,7 @@ index 7296e775e04e..8d0180a7b370 100644
  			kmem_cache_free(vm_region_jar, region);
  			region = pregion;
  			result = start;
-@@ -1205,10 +1205,10 @@ unsigned long do_mmap(struct file *file,
+@@ -1209,10 +1209,10 @@ unsigned long do_mmap(struct file *file,
  error:
  	vma_iter_free(&vmi);
  	if (region->vm_file)
@@ -683,11 +641,60 @@ index 000000000000..8f820a235364
 +		fput(pr);
 +}
 +#endif /* !CONFIG_MMU */
+diff --git a/mm/vma.c b/mm/vma.c
+index 7621384d64cf..3bb41fe6ac48 100644
+--- a/mm/vma.c
++++ b/mm/vma.c
+@@ -248,7 +248,7 @@ static void vma_complete(struct vma_prepare *vp, struct vma_iterator *vmi,
+ 		if (vp->file) {
+ 			uprobe_munmap(vp->remove, vp->remove->vm_start,
+ 				      vp->remove->vm_end);
+-			fput(vp->file);
++			vma_fput(vp->vma);
+ 		}
+ 		if (vp->remove->anon_vma)
+ 			anon_vma_merge(vp->vma, vp->remove);
+@@ -328,7 +328,7 @@ void remove_vma(struct vm_area_struct *vma, bool unreachable)
+ 	might_sleep();
+ 	vma_close(vma);
+ 	if (vma->vm_file)
+-		fput(vma->vm_file);
++		vma_fput(vma);
+ 	mpol_put(vma_policy(vma));
+ 	if (unreachable)
+ 		__vm_area_free(vma);
+@@ -405,7 +405,7 @@ static int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma,
+ 		goto out_free_mpol;
+ 
+ 	if (new->vm_file)
+-		get_file(new->vm_file);
++		vma_get_file(new);
+ 
+ 	if (new->vm_ops && new->vm_ops->open)
+ 		new->vm_ops->open(new);
+@@ -1671,7 +1671,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+ 		if (anon_vma_clone(new_vma, vma))
+ 			goto out_free_mempol;
+ 		if (new_vma->vm_file)
+-			get_file(new_vma->vm_file);
++			vma_get_file(new_vma);
+ 		if (new_vma->vm_ops && new_vma->vm_ops->open)
+ 			new_vma->vm_ops->open(new_vma);
+ 		if (vma_link(mm, new_vma))
+@@ -1684,7 +1684,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+ 	vma_close(new_vma);
+ 
+ 	if (new_vma->vm_file)
+-		fput(new_vma->vm_file);
++		vma_fput(new_vma);
+ 
+ 	unlink_anon_vmas(new_vma);
+ out_free_mempol:
 SPDX-License-Identifier: GPL-2.0
-aufs6.11.2 standalone patch
+aufs6.x-rcN standalone patch
 
 diff --git a/fs/dcache.c b/fs/dcache.c
-index e5f57c3cfbfc..529be26e381d 100644
+index 1ab11cad60e8..3a01c42c6639 100644
 --- a/fs/dcache.c
 +++ b/fs/dcache.c
 @@ -1333,6 +1333,7 @@ void d_walk(struct dentry *parent, void *data,
@@ -698,7 +705,7 @@ index e5f57c3cfbfc..529be26e381d 100644
  
  struct check_mount {
  	struct vfsmount *mnt;
-@@ -2897,6 +2898,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
+@@ -2899,6 +2900,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
  
  	write_sequnlock(&rename_lock);
  }
@@ -707,7 +714,7 @@ index e5f57c3cfbfc..529be26e381d 100644
  /**
   * d_ancestor - search for an ancestor
 diff --git a/fs/exec.c b/fs/exec.c
-index 50e76cc633c4..9c5f68105979 100644
+index 6c53920795c2..22e10087e34f 100644
 --- a/fs/exec.c
 +++ b/fs/exec.c
 @@ -114,6 +114,7 @@ bool path_noexec(const struct path *path)
@@ -719,22 +726,22 @@ index 50e76cc633c4..9c5f68105979 100644
  #ifdef CONFIG_USELIB
  /*
 diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 3491d46ac758..921b5eeb8cec 100644
+index 460791727fd9..75ab59a3df36 100644
 --- a/fs/fcntl.c
 +++ b/fs/fcntl.c
-@@ -88,6 +88,7 @@ int setfl(int fd, struct file * filp, unsigned int arg)
+@@ -90,6 +90,7 @@ int setfl(int fd, struct file * filp, unsigned int arg)
   out:
  	return error;
  }
 +EXPORT_SYMBOL_GPL(setfl);
  
- void __f_setown(struct file *filp, struct pid *pid, enum pid_type type,
- 		int force)
+ /*
+  * Allocate an file->f_owner struct if it doesn't exist, handling racing
 diff --git a/fs/file_table.c b/fs/file_table.c
-index ca7843dde56d..0ce507e96f3a 100644
+index eed5ffad9997..2f6bead42478 100644
 --- a/fs/file_table.c
 +++ b/fs/file_table.c
-@@ -221,6 +221,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
+@@ -228,6 +228,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
  	}
  	return ERR_PTR(-ENFILE);
  }
@@ -743,7 +750,7 @@ index ca7843dde56d..0ce507e96f3a 100644
  /*
   * Variant of alloc_empty_file() that doesn't check and modify nr_files.
 diff --git a/fs/namespace.c b/fs/namespace.c
-index ce44cfda1349..7af180f3070d 100644
+index 85739e2d64c0..8aa96de6c151 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
 @@ -971,6 +971,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
@@ -754,7 +761,7 @@ index ce44cfda1349..7af180f3070d 100644
  
  /*
   * vfsmount lock must be held for write
-@@ -2173,6 +2174,7 @@ struct vfsmount *collect_mounts(const struct path *path)
+@@ -2200,6 +2201,7 @@ struct vfsmount *collect_mounts(const struct path *path)
  		return ERR_CAST(tree);
  	return &tree->mnt;
  }
@@ -762,7 +769,7 @@ index ce44cfda1349..7af180f3070d 100644
  
  static void free_mnt_ns(struct mnt_namespace *);
  static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *, bool);
-@@ -2203,6 +2205,7 @@ void drop_collected_mounts(struct vfsmount *mnt)
+@@ -2230,6 +2232,7 @@ void drop_collected_mounts(struct vfsmount *mnt)
  	unlock_mount_hash();
  	namespace_unlock();
  }
@@ -770,7 +777,7 @@ index ce44cfda1349..7af180f3070d 100644
  
  bool has_locked_children(struct mount *mnt, struct dentry *dentry)
  {
-@@ -2274,6 +2277,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+@@ -2301,6 +2304,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
  	}
  	return 0;
  }
@@ -779,7 +786,7 @@ index ce44cfda1349..7af180f3070d 100644
  static void lock_mnt_tree(struct mount *mnt)
  {
 diff --git a/fs/notify/group.c b/fs/notify/group.c
-index 1de6631a3925..3008eb37a18d 100644
+index 18446b7b0d49..09138e0b8a6a 100644
 --- a/fs/notify/group.c
 +++ b/fs/notify/group.c
 @@ -100,6 +100,7 @@ void fsnotify_get_group(struct fsnotify_group *group)
@@ -791,7 +798,7 @@ index 1de6631a3925..3008eb37a18d 100644
  /*
   * Drop a reference to a group.  Free it if it's through.
 diff --git a/fs/open.c b/fs/open.c
-index 22adbef7ecc2..8a6cbb395ba9 100644
+index 5da4df2f9b18..6024098fc644 100644
 --- a/fs/open.c
 +++ b/fs/open.c
 @@ -66,6 +66,7 @@ int do_truncate(struct mnt_idmap *idmap, struct dentry *dentry,
@@ -803,10 +810,10 @@ index 22adbef7ecc2..8a6cbb395ba9 100644
  long vfs_truncate(const struct path *path, loff_t length)
  {
 diff --git a/fs/read_write.c b/fs/read_write.c
-index 90e283b31ca1..e85c2c6149ac 100644
+index 64dc24afdb3a..ec1fd6aab175 100644
 --- a/fs/read_write.c
 +++ b/fs/read_write.c
-@@ -483,6 +483,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
+@@ -576,6 +576,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
  	inc_syscr(current);
  	return ret;
  }
@@ -814,7 +821,7 @@ index 90e283b31ca1..e85c2c6149ac 100644
  
  static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
  {
-@@ -598,6 +599,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_
+@@ -691,6 +692,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_
  	file_end_write(file);
  	return ret;
  }
@@ -823,7 +830,7 @@ index 90e283b31ca1..e85c2c6149ac 100644
  /* file_ppos returns &file->f_pos or NULL if file is stream */
  static inline loff_t *file_ppos(struct file *file)
 diff --git a/fs/splice.c b/fs/splice.c
-index 04af758d332c..06836fe2d101 100644
+index b15fd6073b6d..0fdb86c3813e 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
 @@ -940,6 +940,7 @@ ssize_t do_splice_from(struct pipe_inode_info *pipe, struct file *out,
@@ -835,7 +842,7 @@ index 04af758d332c..06836fe2d101 100644
  /*
   * Indicate to the caller that there was a premature EOF when reading from the
 diff --git a/fs/xattr.c b/fs/xattr.c
-index 7672ce5486c5..b59504c73737 100644
+index 05ec7e7d9e87..e07ffa052dfb 100644
 --- a/fs/xattr.c
 +++ b/fs/xattr.c
 @@ -405,6 +405,7 @@ vfs_getxattr_alloc(struct mnt_idmap *idmap, struct dentry *dentry,
@@ -847,10 +854,10 @@ index 7672ce5486c5..b59504c73737 100644
  ssize_t
  __vfs_getxattr(struct dentry *dentry, struct inode *inode, const char *name,
 diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index 67dc035df216..fcb6a13b4d21 100644
+index 34b378cf7a95..df6a751298b3 100644
 --- a/kernel/locking/lockdep.c
 +++ b/kernel/locking/lockdep.c
-@@ -238,6 +238,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock)
+@@ -239,6 +239,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock)
  	 */
  	return lock_classes + class_idx;
  }
@@ -859,19 +866,19 @@ index 67dc035df216..fcb6a13b4d21 100644
  
  #ifdef CONFIG_LOCK_STAT
 diff --git a/kernel/task_work.c b/kernel/task_work.c
-index 5d14d639ac71..d6b770a115b8 100644
+index c969f1f26be5..68eb672f425d 100644
 --- a/kernel/task_work.c
 +++ b/kernel/task_work.c
-@@ -231,3 +231,4 @@ void task_work_run(void)
+@@ -242,3 +242,4 @@ void task_work_run(void)
  		} while (work);
  	}
  }
 +EXPORT_SYMBOL_GPL(task_work_run);
 diff --git a/security/security.c b/security/security.c
-index 43166e341526..dc5522600802 100644
+index c5981e558bc2..045dd716e340 100644
 --- a/security/security.c
 +++ b/security/security.c
-@@ -1843,6 +1843,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
+@@ -1944,6 +1944,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
  		return 0;
  	return call_int_hook(path_rmdir, dir, dentry);
  }
@@ -879,7 +886,7 @@ index 43166e341526..dc5522600802 100644
  
  /**
   * security_path_unlink() - Check if removing a hard link is allowed
-@@ -1878,6 +1879,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry,
+@@ -1979,6 +1980,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry,
  		return 0;
  	return call_int_hook(path_symlink, dir, dentry, old_name);
  }
@@ -887,7 +894,7 @@ index 43166e341526..dc5522600802 100644
  
  /**
   * security_path_link - Check if creating a hard link is allowed
-@@ -1896,6 +1898,7 @@ int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
+@@ -1997,6 +1999,7 @@ int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
  		return 0;
  	return call_int_hook(path_link, old_dentry, new_dir, new_dentry);
  }
@@ -895,7 +902,7 @@ index 43166e341526..dc5522600802 100644
  
  /**
   * security_path_rename() - Check if renaming a file is allowed
-@@ -1957,6 +1960,7 @@ int security_path_chmod(const struct path *path, umode_t mode)
+@@ -2058,6 +2061,7 @@ int security_path_chmod(const struct path *path, umode_t mode)
  		return 0;
  	return call_int_hook(path_chmod, path, mode);
  }
@@ -903,7 +910,7 @@ index 43166e341526..dc5522600802 100644
  
  /**
   * security_path_chown() - Check if changing the file's owner/group is allowed
-@@ -1974,6 +1978,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
+@@ -2075,6 +2079,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
  		return 0;
  	return call_int_hook(path_chown, path, uid, gid);
  }
@@ -911,7 +918,7 @@ index 43166e341526..dc5522600802 100644
  
  /**
   * security_path_chroot() - Check if changing the root directory is allowed
-@@ -2218,6 +2223,7 @@ int security_inode_permission(struct inode *inode, int mask)
+@@ -2319,6 +2324,7 @@ int security_inode_permission(struct inode *inode, int mask)
  		return 0;
  	return call_int_hook(inode_permission, inode, mask);
  }
@@ -919,7 +926,7 @@ index 43166e341526..dc5522600802 100644
  
  /**
   * security_inode_setattr() - Check if setting file attributes is allowed
-@@ -2724,6 +2730,7 @@ int security_file_permission(struct file *file, int mask)
+@@ -2840,6 +2846,7 @@ int security_file_permission(struct file *file, int mask)
  {
  	return call_int_hook(file_permission, file, mask);
  }
@@ -927,7 +934,7 @@ index 43166e341526..dc5522600802 100644
  
  /**
   * security_file_alloc() - Allocate and init a file's LSM blob
-@@ -3026,6 +3033,7 @@ int security_file_truncate(struct file *file)
+@@ -3144,6 +3151,7 @@ int security_file_truncate(struct file *file)
  {
  	return call_int_hook(file_truncate, file);
  }
@@ -937,7 +944,7 @@ index 43166e341526..dc5522600802 100644
   * security_task_alloc() - Allocate a task's LSM blob
 diff -urN /usr/share/empty/Documentation/ABI/testing/debugfs-aufs linux/Documentation/ABI/testing/debugfs-aufs
 --- /usr/share/empty/Documentation/ABI/testing/debugfs-aufs	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/ABI/testing/debugfs-aufs	2024-10-05 00:15:34.934664711 +0200
++++ linux/Documentation/ABI/testing/debugfs-aufs	2022-11-05 23:02:18.955889283 +0100
 @@ -0,0 +1,55 @@
 +What:		/debug/aufs/si_<id>/
 +Date:		March 2009
@@ -996,7 +1003,7 @@ diff -urN /usr/share/empty/Documentation/ABI/testing/debugfs-aufs linux/Document
 +		will be empty. About XINO files, see the aufs manual.
 diff -urN /usr/share/empty/Documentation/ABI/testing/sysfs-aufs linux/Documentation/ABI/testing/sysfs-aufs
 --- /usr/share/empty/Documentation/ABI/testing/sysfs-aufs	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/ABI/testing/sysfs-aufs	2024-10-05 00:15:34.934664711 +0200
++++ linux/Documentation/ABI/testing/sysfs-aufs	2022-11-05 23:02:18.955889283 +0100
 @@ -0,0 +1,31 @@
 +What:		/sys/fs/aufs/si_<id>/
 +Date:		March 2009
@@ -1031,7 +1038,7 @@ diff -urN /usr/share/empty/Documentation/ABI/testing/sysfs-aufs linux/Documentat
 +		will be empty. About XINO files, see the aufs manual.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/01intro.txt linux/Documentation/filesystems/aufs/design/01intro.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/01intro.txt	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/01intro.txt	2024-10-05 00:15:34.944664466 +0200
++++ linux/Documentation/filesystems/aufs/design/01intro.txt	2022-11-05 23:02:18.955889283 +0100
 @@ -0,0 +1,171 @@
 +
 +# Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -1206,7 +1213,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/01intro.txt lin
 +about it. But currently I have implemented it in kernel space.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/02struct.txt linux/Documentation/filesystems/aufs/design/02struct.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/02struct.txt	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/02struct.txt	2024-10-05 00:15:34.947997717 +0200
++++ linux/Documentation/filesystems/aufs/design/02struct.txt	2022-11-05 23:02:18.955889283 +0100
 @@ -0,0 +1,258 @@
 +
 +# Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -1468,7 +1475,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/02struct.txt li
 +For this purpose, use "aumvdown" command in aufs-util.git.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/03atomic_open.txt linux/Documentation/filesystems/aufs/design/03atomic_open.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/03atomic_open.txt	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/03atomic_open.txt	2024-10-05 00:15:34.947997717 +0200
++++ linux/Documentation/filesystems/aufs/design/03atomic_open.txt	2022-11-05 23:02:18.955889283 +0100
 @@ -0,0 +1,85 @@
 +
 +# Copyright (C) 2015-2022 Junjiro R. Okajima
@@ -1557,7 +1564,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/03atomic_open.t
 +       be implemented in aufs, but not all I am afraid.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/03lookup.txt linux/Documentation/filesystems/aufs/design/03lookup.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/03lookup.txt	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/03lookup.txt	2024-10-05 00:15:34.951330969 +0200
++++ linux/Documentation/filesystems/aufs/design/03lookup.txt	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,113 @@
 +
 +# Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -1674,7 +1681,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/03lookup.txt li
 +   by over-mounting something (or another method).
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/04branch.txt linux/Documentation/filesystems/aufs/design/04branch.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/04branch.txt	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/04branch.txt	2024-10-05 00:15:34.954664220 +0200
++++ linux/Documentation/filesystems/aufs/design/04branch.txt	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,74 @@
 +
 +# Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -1752,7 +1759,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/04branch.txt li
 +    same named entry on the upper branch.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/05wbr_policy.txt linux/Documentation/filesystems/aufs/design/05wbr_policy.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/05wbr_policy.txt	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/05wbr_policy.txt	2024-10-05 00:15:34.954664220 +0200
++++ linux/Documentation/filesystems/aufs/design/05wbr_policy.txt	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,64 @@
 +
 +# Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -1820,7 +1827,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/05wbr_policy.tx
 +  copyup policy.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06dirren.dot linux/Documentation/filesystems/aufs/design/06dirren.dot
 --- /usr/share/empty/Documentation/filesystems/aufs/design/06dirren.dot	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/06dirren.dot	2024-10-05 00:15:34.957997472 +0200
++++ linux/Documentation/filesystems/aufs/design/06dirren.dot	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,44 @@
 +
 +// to view this graph, run dot(1) command in GRAPHVIZ.
@@ -1868,7 +1875,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06dirren.dot li
 +}
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06dirren.txt linux/Documentation/filesystems/aufs/design/06dirren.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/06dirren.txt	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/06dirren.txt	2024-10-05 00:15:34.961330723 +0200
++++ linux/Documentation/filesystems/aufs/design/06dirren.txt	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,102 @@
 +
 +# Copyright (C) 2017-2022 Junjiro R. Okajima
@@ -1974,7 +1981,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06dirren.txt li
 +equivalen to udba=reval case.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06fhsm.txt linux/Documentation/filesystems/aufs/design/06fhsm.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/06fhsm.txt	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/06fhsm.txt	2024-10-05 00:15:34.964663975 +0200
++++ linux/Documentation/filesystems/aufs/design/06fhsm.txt	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,118 @@
 +
 +# Copyright (C) 2011-2022 Junjiro R. Okajima
@@ -2096,7 +2103,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06fhsm.txt linu
 +should restore the original file state after an error happens.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06mmap.txt linux/Documentation/filesystems/aufs/design/06mmap.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/06mmap.txt	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/06mmap.txt	2024-10-05 00:15:34.967997226 +0200
++++ linux/Documentation/filesystems/aufs/design/06mmap.txt	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,72 @@
 +
 +# Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -2172,7 +2179,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06mmap.txt linu
 +I have to give up this "looks-smater" approach.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06xattr.txt linux/Documentation/filesystems/aufs/design/06xattr.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/06xattr.txt	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/06xattr.txt	2024-10-05 00:15:34.967997226 +0200
++++ linux/Documentation/filesystems/aufs/design/06xattr.txt	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,94 @@
 +
 +# Copyright (C) 2014-2022 Junjiro R. Okajima
@@ -2270,7 +2277,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06xattr.txt lin
 +now, aufs implements the branch attributes to ignore the error.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/07export.txt linux/Documentation/filesystems/aufs/design/07export.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/07export.txt	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/07export.txt	2024-10-05 00:15:34.971330478 +0200
++++ linux/Documentation/filesystems/aufs/design/07export.txt	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,58 @@
 +
 +# Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -2332,7 +2339,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/07export.txt li
 +  lookup_one_len(), vfs_getattr(), encode_fh() and others.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/08shwh.txt linux/Documentation/filesystems/aufs/design/08shwh.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/08shwh.txt	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/08shwh.txt	2024-10-05 00:15:34.974663729 +0200
++++ linux/Documentation/filesystems/aufs/design/08shwh.txt	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,52 @@
 +
 +# Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -2388,7 +2395,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/08shwh.txt linu
 +initramfs will use it to replace the old one at the next boot.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/10dynop.txt linux/Documentation/filesystems/aufs/design/10dynop.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/10dynop.txt	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/10dynop.txt	2024-10-05 00:15:34.977996981 +0200
++++ linux/Documentation/filesystems/aufs/design/10dynop.txt	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,47 @@
 +
 +# Copyright (C) 2010-2022 Junjiro R. Okajima
@@ -2439,7 +2446,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/10dynop.txt lin
 +regular files only.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documentation/filesystems/aufs/README
 --- /usr/share/empty/Documentation/filesystems/aufs/README	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/README	2024-10-05 00:15:34.941331214 +0200
++++ linux/Documentation/filesystems/aufs/README	2024-11-18 12:46:45.633029891 +0100
 @@ -0,0 +1,409 @@
 +
 +Aufs6 -- advanced multi layered unification filesystem version 6.x
@@ -2852,7 +2859,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documenta
 +# End: ;
 diff -urN /usr/share/empty/fs/aufs/aufs.h linux/fs/aufs/aufs.h
 --- /usr/share/empty/fs/aufs/aufs.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/aufs.h	2024-10-05 00:15:34.997996490 +0200
++++ linux/fs/aufs/aufs.h	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,62 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -2918,7 +2925,7 @@ diff -urN /usr/share/empty/fs/aufs/aufs.h linux/fs/aufs/aufs.h
 +#endif /* __AUFS_H__ */
 diff -urN /usr/share/empty/fs/aufs/branch.c linux/fs/aufs/branch.c
 --- /usr/share/empty/fs/aufs/branch.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/branch.c	2024-10-05 00:15:35.001329742 +0200
++++ linux/fs/aufs/branch.c	2024-11-10 01:09:28.603051194 +0100
 @@ -0,0 +1,1427 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -4349,7 +4356,7 @@ diff -urN /usr/share/empty/fs/aufs/branch.c linux/fs/aufs/branch.c
 +}
 diff -urN /usr/share/empty/fs/aufs/branch.h linux/fs/aufs/branch.h
 --- /usr/share/empty/fs/aufs/branch.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/branch.h	2024-10-05 00:15:35.004662993 +0200
++++ linux/fs/aufs/branch.h	2023-10-31 09:31:04.196547417 +0100
 @@ -0,0 +1,375 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -4728,7 +4735,7 @@ diff -urN /usr/share/empty/fs/aufs/branch.h linux/fs/aufs/branch.h
 +#endif /* __AUFS_BRANCH_H__ */
 diff -urN /usr/share/empty/fs/aufs/conf.mk linux/fs/aufs/conf.mk
 --- /usr/share/empty/fs/aufs/conf.mk	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/conf.mk	2024-10-05 00:15:35.007996245 +0200
++++ linux/fs/aufs/conf.mk	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,40 @@
 +# SPDX-License-Identifier: GPL-2.0
 +
@@ -4772,8 +4779,8 @@ diff -urN /usr/share/empty/fs/aufs/conf.mk linux/fs/aufs/conf.mk
 +-include ${srctree}/${src}/conf_priv.mk
 diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 --- /usr/share/empty/fs/aufs/cpup.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/cpup.c	2024-10-05 00:15:35.011329496 +0200
-@@ -0,0 +1,1459 @@
++++ linux/fs/aufs/cpup.c	2024-11-18 12:46:45.633029891 +0100
+@@ -0,0 +1,1458 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -4845,7 +4852,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +	 * todo: O_TMPFILE+linkat(AT_SYMLINK_FOLLOW) bypassing aufs may cause
 +	 *	 the incorrect link count.
 +	 */
-+	set_nlink(inode, h_inode->i_nlink);
++	au_set_nlink(inode, h_inode->i_nlink);
 +
 +	/*
 +	 * fewer nlink makes find(1) noisy, but larger nlink doesn't.
@@ -4889,8 +4896,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +
 +	h_inode = au_h_iptr(inode, au_ibtop(inode));
 +	au_cpup_attr_changeable(inode);
-+	if (inode->i_nlink > 0)
-+		au_cpup_attr_nlink(inode, force);
++	au_cpup_attr_nlink(inode, force);
 +	inode->i_rdev = h_inode->i_rdev;
 +	inode->i_blkbits = h_inode->i_blkbits;
 +	au_cpup_igen(inode, h_inode);
@@ -5319,7 +5325,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +			goto out;
 +		}
 +		h_src_attr->valid = 1;
-+		if (!au_test_nfs(h_src_inode->i_sb)) {
++		if (!au_test_fs_unlock_for_open(h_src_inode->i_sb)) {
 +			err = au_cp_regular(cpg);
 +			inode_unlock_shared(h_src_inode);
 +		} else {
@@ -6235,7 +6241,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +}
 diff -urN /usr/share/empty/fs/aufs/cpup.h linux/fs/aufs/cpup.h
 --- /usr/share/empty/fs/aufs/cpup.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/cpup.h	2024-10-05 00:15:35.011329496 +0200
++++ linux/fs/aufs/cpup.h	2024-11-10 01:09:28.606384527 +0100
 @@ -0,0 +1,101 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -6340,7 +6346,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.h linux/fs/aufs/cpup.h
 +#endif /* __AUFS_CPUP_H__ */
 diff -urN /usr/share/empty/fs/aufs/dbgaufs.c linux/fs/aufs/dbgaufs.c
 --- /usr/share/empty/fs/aufs/dbgaufs.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dbgaufs.c	2024-10-05 00:15:35.014662748 +0200
++++ linux/fs/aufs/dbgaufs.c	2023-10-10 22:51:18.033248030 +0200
 @@ -0,0 +1,526 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -6870,7 +6876,7 @@ diff -urN /usr/share/empty/fs/aufs/dbgaufs.c linux/fs/aufs/dbgaufs.c
 +}
 diff -urN /usr/share/empty/fs/aufs/dbgaufs.h linux/fs/aufs/dbgaufs.h
 --- /usr/share/empty/fs/aufs/dbgaufs.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dbgaufs.h	2024-10-05 00:15:35.017995999 +0200
++++ linux/fs/aufs/dbgaufs.h	2022-11-05 23:02:18.962555950 +0100
 @@ -0,0 +1,53 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -6927,7 +6933,7 @@ diff -urN /usr/share/empty/fs/aufs/dbgaufs.h linux/fs/aufs/dbgaufs.h
 +#endif /* __DBGAUFS_H__ */
 diff -urN /usr/share/empty/fs/aufs/dcsub.c linux/fs/aufs/dcsub.c
 --- /usr/share/empty/fs/aufs/dcsub.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dcsub.c	2024-10-05 00:15:35.021329251 +0200
++++ linux/fs/aufs/dcsub.c	2022-11-05 23:02:18.962555950 +0100
 @@ -0,0 +1,225 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -7156,7 +7162,7 @@ diff -urN /usr/share/empty/fs/aufs/dcsub.c linux/fs/aufs/dcsub.c
 +}
 diff -urN /usr/share/empty/fs/aufs/dcsub.h linux/fs/aufs/dcsub.h
 --- /usr/share/empty/fs/aufs/dcsub.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dcsub.h	2024-10-05 00:15:35.021329251 +0200
++++ linux/fs/aufs/dcsub.h	2022-11-05 23:02:18.962555950 +0100
 @@ -0,0 +1,137 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -7297,7 +7303,7 @@ diff -urN /usr/share/empty/fs/aufs/dcsub.h linux/fs/aufs/dcsub.h
 +#endif /* __AUFS_DCSUB_H__ */
 diff -urN /usr/share/empty/fs/aufs/debug.c linux/fs/aufs/debug.c
 --- /usr/share/empty/fs/aufs/debug.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/debug.c	2024-10-06 23:39:14.942699140 +0200
++++ linux/fs/aufs/debug.c	2024-11-18 12:46:45.633029891 +0100
 @@ -0,0 +1,448 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -7431,7 +7437,7 @@ diff -urN /usr/share/empty/fs/aufs/debug.c linux/fs/aufs/debug.c
 +	ctime = inode_get_ctime(inode);
 +	dpri("i%d: %p, i%lu, %s, cnt %d, nl %u, 0%o, sz %llu, blk %llu,"
 +	     " acl %p, def_acl %p,"
-+	     " hn %d, ct %lld, np %lu, st 0x%lx, f 0x%x, v %llu, g %x%s%.*s\n",
++	     " hn %d, ct %lld, np %lu, st 0x%x, f 0x%x, v %llu, g %x%s%.*s\n",
 +	     bindex, inode,
 +	     inode->i_ino, inode->i_sb ? au_sbtype(inode->i_sb) : "??",
 +	     atomic_read(&inode->i_count), inode->i_nlink, inode->i_mode,
@@ -7553,9 +7559,9 @@ diff -urN /usr/share/empty/fs/aufs/debug.c linux/fs/aufs/debug.c
 +	    && au_fi(file))
 +		snprintf(a, sizeof(a), ", gen %d, mmapped %d",
 +			 au_figen(file), atomic_read(&au_fi(file)->fi_mmapped));
-+	dpri("f%d: mode 0x%x, flags 0%o, cnt %ld, v %llu, pos %llu%s\n",
++	dpri("f%d: mode 0x%x, flags 0%o, cnt %ld, pos %llu%s\n",
 +	     bindex, file->f_mode, file->f_flags, (long)file_count(file),
-+	     file->f_version, file->f_pos, a);
++	     file->f_pos, a);
 +	if (!IS_ERR_OR_NULL(file->f_path.dentry))
 +		do_pri_dentry(bindex, file->f_path.dentry);
 +	return 0;
@@ -7749,7 +7755,7 @@ diff -urN /usr/share/empty/fs/aufs/debug.c linux/fs/aufs/debug.c
 +}
 diff -urN /usr/share/empty/fs/aufs/debug.h linux/fs/aufs/debug.h
 --- /usr/share/empty/fs/aufs/debug.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/debug.h	2024-10-05 00:15:35.027995754 +0200
++++ linux/fs/aufs/debug.h	2024-11-18 12:46:45.636363225 +0100
 @@ -0,0 +1,226 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -7802,7 +7808,7 @@ diff -urN /usr/share/empty/fs/aufs/debug.h linux/fs/aufs/debug.h
 +	return atomic_read(&aufs_debug) > 0;
 +}
 +#else
-+#define AuDebugOn(a)		do {} while (0)
++AuStubVoid(AuDebugOn, bool expr __maybe_unused)
 +AuStubVoid(au_debug_on, void)
 +AuStubVoid(au_debug_off, void)
 +AuStubInt0(au_debug_test, void)
@@ -7861,14 +7867,14 @@ diff -urN /usr/share/empty/fs/aufs/debug.h linux/fs/aufs/debug.h
 +/* ---------------------------------------------------------------------- */
 +
 +struct dentry;
++struct inode;
++struct au_nhash;
++struct au_vdir;
 +#ifdef CONFIG_AUFS_DEBUG
 +extern struct mutex au_dbg_mtx;
 +extern char *au_plevel;
-+struct au_nhash;
 +void au_dpri_whlist(struct au_nhash *whlist);
-+struct au_vdir;
 +void au_dpri_vdir(struct au_vdir *vdir);
-+struct inode;
 +void au_dpri_inode(struct inode *inode);
 +void au_dpri_dalias(struct inode *inode);
 +void au_dpri_dentry(struct dentry *dentry);
@@ -7979,7 +7985,7 @@ diff -urN /usr/share/empty/fs/aufs/debug.h linux/fs/aufs/debug.h
 +#endif /* __AUFS_DEBUG_H__ */
 diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 --- /usr/share/empty/fs/aufs/dentry.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dentry.c	2024-10-05 00:15:35.031329005 +0200
++++ linux/fs/aufs/dentry.c	2024-10-15 11:25:59.889776980 +0200
 @@ -0,0 +1,1175 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -9158,7 +9164,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +};
 diff -urN /usr/share/empty/fs/aufs/dentry.h linux/fs/aufs/dentry.h
 --- /usr/share/empty/fs/aufs/dentry.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dentry.h	2024-10-05 00:15:35.031329005 +0200
++++ linux/fs/aufs/dentry.h	2024-11-10 01:09:28.606384527 +0100
 @@ -0,0 +1,270 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -9432,7 +9438,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.h linux/fs/aufs/dentry.h
 +#endif /* __AUFS_DENTRY_H__ */
 diff -urN /usr/share/empty/fs/aufs/dinfo.c linux/fs/aufs/dinfo.c
 --- /usr/share/empty/fs/aufs/dinfo.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dinfo.c	2024-10-05 00:15:35.034662257 +0200
++++ linux/fs/aufs/dinfo.c	2022-12-17 09:21:34.796521861 +0100
 @@ -0,0 +1,555 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -9991,8 +9997,8 @@ diff -urN /usr/share/empty/fs/aufs/dinfo.c linux/fs/aufs/dinfo.c
 +}
 diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
 --- /usr/share/empty/fs/aufs/dir.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dir.c	2024-10-06 23:39:14.949365632 +0200
-@@ -0,0 +1,766 @@
++++ linux/fs/aufs/dir.c	2024-11-18 12:46:45.636363225 +0100
+@@ -0,0 +1,765 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -10031,7 +10037,7 @@ diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
 +		nlink += 2;
 +	smp_mb(); /* for i_nlink */
 +	/* 0 can happen in revaliding */
-+	set_nlink(dir, nlink);
++	au_set_nlink(dir, nlink);
 +}
 +
 +void au_sub_nlink(struct inode *dir, struct inode *h_dir)
@@ -10046,7 +10052,7 @@ diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
 +		nlink -= 2;
 +	smp_mb(); /* for i_nlink */
 +	/* nlink == 0 means the branch-fs is broken */
-+	set_nlink(dir, nlink);
++	au_set_nlink(dir, nlink);
 +}
 +
 +loff_t au_dir_size(struct file *file, struct dentry *dentry)
@@ -10257,7 +10263,6 @@ diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
 +	err = 0;
 +	mnt = file->f_path.mnt;
 +	dentry = file->f_path.dentry;
-+	file->f_version = inode_query_iversion(d_inode(dentry));
 +	bindex = au_dbtop(dentry);
 +	au_set_fbtop(file, bindex);
 +	btail = au_dbtaildir(dentry);
@@ -10761,7 +10766,7 @@ diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
 +};
 diff -urN /usr/share/empty/fs/aufs/dir.h linux/fs/aufs/dir.h
 --- /usr/share/empty/fs/aufs/dir.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dir.h	2024-10-05 00:15:35.041328760 +0200
++++ linux/fs/aufs/dir.h	2022-11-05 23:02:18.962555950 +0100
 @@ -0,0 +1,134 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -10899,7 +10904,7 @@ diff -urN /usr/share/empty/fs/aufs/dir.h linux/fs/aufs/dir.h
 +#endif /* __AUFS_DIR_H__ */
 diff -urN /usr/share/empty/fs/aufs/dirren.c linux/fs/aufs/dirren.c
 --- /usr/share/empty/fs/aufs/dirren.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dirren.c	2024-10-05 00:15:35.044662011 +0200
++++ linux/fs/aufs/dirren.c	2023-10-10 22:51:18.033248030 +0200
 @@ -0,0 +1,1315 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -12218,7 +12223,7 @@ diff -urN /usr/share/empty/fs/aufs/dirren.c linux/fs/aufs/dirren.c
 +}
 diff -urN /usr/share/empty/fs/aufs/dirren.h linux/fs/aufs/dirren.h
 --- /usr/share/empty/fs/aufs/dirren.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dirren.h	2024-10-05 00:15:35.047995263 +0200
++++ linux/fs/aufs/dirren.h	2022-11-05 23:02:18.962555950 +0100
 @@ -0,0 +1,140 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -12362,8 +12367,8 @@ diff -urN /usr/share/empty/fs/aufs/dirren.h linux/fs/aufs/dirren.h
 +#endif /* __AUFS_DIRREN_H__ */
 diff -urN /usr/share/empty/fs/aufs/dynop.c linux/fs/aufs/dynop.c
 --- /usr/share/empty/fs/aufs/dynop.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dynop.c	2024-10-05 00:15:35.047995263 +0200
-@@ -0,0 +1,366 @@
++++ linux/fs/aufs/dynop.c	2024-11-18 12:46:45.636363225 +0100
+@@ -0,0 +1,365 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2010-2022 Junjiro R. Okajima
@@ -12388,7 +12393,7 @@ diff -urN /usr/share/empty/fs/aufs/dynop.c linux/fs/aufs/dynop.c
 +
 +#include "aufs.h"
 +
-+#define DyPrSym(key)	AuDbgSym(key->dk_op.dy_hop)
++#define DyPrSym(key)	AuDbgSym((void*)(key->dk_op.dy_hop))
 +
 +/*
 + * How large will these lists be?
@@ -12503,12 +12508,11 @@ diff -urN /usr/share/empty/fs/aufs/dynop.c linux/fs/aufs/dynop.c
 +
 +#define DyDbgSize(cnt, op)	AuDebugOn(cnt != sizeof(op)/sizeof(void *))
 +
++#define DyDbgDeclare(cnt)	unsigned int cnt __maybe_unused = 0
 +#ifdef CONFIG_AUFS_DEBUG
-+#define DyDbgDeclare(cnt)	unsigned int cnt = 0
 +#define DyDbgInc(cnt)		do { cnt++; } while (0)
 +#else
-+#define DyDbgDeclare(cnt)	do {} while (0)
-+#define DyDbgInc(cnt)		do {} while (0)
++AuStubVoid(DyDbgInc, unsigned int cnt __maybe_unused);
 +#endif
 +
 +#define DySet(func, dst, src, h_op, h_sb) do {				\
@@ -12732,7 +12736,7 @@ diff -urN /usr/share/empty/fs/aufs/dynop.c linux/fs/aufs/dynop.c
 +}
 diff -urN /usr/share/empty/fs/aufs/dynop.h linux/fs/aufs/dynop.h
 --- /usr/share/empty/fs/aufs/dynop.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dynop.h	2024-10-05 00:15:35.051328514 +0200
++++ linux/fs/aufs/dynop.h	2022-11-05 23:02:18.962555950 +0100
 @@ -0,0 +1,77 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -12813,7 +12817,7 @@ diff -urN /usr/share/empty/fs/aufs/dynop.h linux/fs/aufs/dynop.h
 +#endif /* __AUFS_DYNOP_H__ */
 diff -urN /usr/share/empty/fs/aufs/export.c linux/fs/aufs/export.c
 --- /usr/share/empty/fs/aufs/export.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/export.c	2024-10-05 00:15:35.054661766 +0200
++++ linux/fs/aufs/export.c	2024-11-10 01:09:28.606384527 +0100
 @@ -0,0 +1,846 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -13663,7 +13667,7 @@ diff -urN /usr/share/empty/fs/aufs/export.c linux/fs/aufs/export.c
 +}
 diff -urN /usr/share/empty/fs/aufs/fhsm.c linux/fs/aufs/fhsm.c
 --- /usr/share/empty/fs/aufs/fhsm.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/fhsm.c	2024-10-05 00:15:35.057995017 +0200
++++ linux/fs/aufs/fhsm.c	2022-11-05 23:02:18.962555950 +0100
 @@ -0,0 +1,426 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -14093,7 +14097,7 @@ diff -urN /usr/share/empty/fs/aufs/fhsm.c linux/fs/aufs/fhsm.c
 +}
 diff -urN /usr/share/empty/fs/aufs/file.c linux/fs/aufs/file.c
 --- /usr/share/empty/fs/aufs/file.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/file.c	2024-10-06 23:39:14.952698877 +0200
++++ linux/fs/aufs/file.c	2024-11-18 12:46:45.636363225 +0100
 @@ -0,0 +1,858 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -14889,11 +14893,11 @@ diff -urN /usr/share/empty/fs/aufs/file.c linux/fs/aufs/file.c
 +#ifdef CONFIG_AUFS_DEBUG
 +static int aufs_write_begin(struct file *file, struct address_space *mapping,
 +			    loff_t pos, unsigned len,
-+			    struct page **pagep, void **fsdata)
++			    struct folio **foliop, void **fsdata)
 +{ AuUnsupport(); return 0; }
 +static int aufs_write_end(struct file *file, struct address_space *mapping,
 +			  loff_t pos, unsigned len, unsigned copied,
-+			  struct page *page, void *fsdata)
++			  struct folio *folio, void *fsdata)
 +{ AuUnsupport(); return 0; }
 +static int aufs_writepage(struct page *page, struct writeback_control *wbc)
 +{ AuUnsupport(); return 0; }
@@ -14955,7 +14959,7 @@ diff -urN /usr/share/empty/fs/aufs/file.c linux/fs/aufs/file.c
 +};
 diff -urN /usr/share/empty/fs/aufs/file.h linux/fs/aufs/file.h
 --- /usr/share/empty/fs/aufs/file.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/file.h	2024-10-05 00:15:35.064661520 +0200
++++ linux/fs/aufs/file.h	2024-10-15 11:25:59.893110313 +0200
 @@ -0,0 +1,342 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -15301,7 +15305,7 @@ diff -urN /usr/share/empty/fs/aufs/file.h linux/fs/aufs/file.h
 +#endif /* __AUFS_FILE_H__ */
 diff -urN /usr/share/empty/fs/aufs/finfo.c linux/fs/aufs/finfo.c
 --- /usr/share/empty/fs/aufs/finfo.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/finfo.c	2024-10-05 00:15:35.067994772 +0200
++++ linux/fs/aufs/finfo.c	2024-11-10 01:09:28.606384527 +0100
 @@ -0,0 +1,147 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -15452,7 +15456,7 @@ diff -urN /usr/share/empty/fs/aufs/finfo.c linux/fs/aufs/finfo.c
 +}
 diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
 --- /usr/share/empty/fs/aufs/f_op.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/f_op.c	2024-10-05 00:15:35.057995017 +0200
++++ linux/fs/aufs/f_op.c	2024-10-15 11:25:59.889776980 +0200
 @@ -0,0 +1,782 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -16238,8 +16242,8 @@ diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
 +};
 diff -urN /usr/share/empty/fs/aufs/fsctx.c linux/fs/aufs/fsctx.c
 --- /usr/share/empty/fs/aufs/fsctx.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/fsctx.c	2024-10-06 23:39:14.956032123 +0200
-@@ -0,0 +1,1244 @@
++++ linux/fs/aufs/fsctx.c	2024-11-18 12:46:45.636363225 +0100
+@@ -0,0 +1,1243 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2022 Junjiro R. Okajima
@@ -16361,8 +16365,7 @@ diff -urN /usr/share/empty/fs/aufs/fsctx.c linux/fs/aufs/fsctx.c
 +	au_sbilist_add(sb);
 +
 +	/* all timestamps always follow the ones on the branch */
-+	sb->s_flags |= SB_NOATIME | SB_NODIRATIME;
-+	sb->s_flags |= SB_I_VERSION; /* do we really need this? */
++	sb->s_flags |= SB_NOATIME | SB_NODIRATIME | SB_I_VERSION;
 +	sb->s_op = &aufs_sop;
 +	sb->s_d_op = &aufs_dop;
 +	sb->s_magic = AUFS_SUPER_MAGIC;
@@ -17486,8 +17489,8 @@ diff -urN /usr/share/empty/fs/aufs/fsctx.c linux/fs/aufs/fsctx.c
 +}
 diff -urN /usr/share/empty/fs/aufs/fstype.h linux/fs/aufs/fstype.h
 --- /usr/share/empty/fs/aufs/fstype.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/fstype.h	2024-10-05 00:15:35.071328023 +0200
-@@ -0,0 +1,401 @@
++++ linux/fs/aufs/fstype.h	2024-11-18 12:46:45.636363225 +0100
+@@ -0,0 +1,419 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -17737,6 +17740,15 @@ diff -urN /usr/share/empty/fs/aufs/fstype.h linux/fs/aufs/fstype.h
 +#endif
 +}
 +
++static inline int au_test_f2fs(struct super_block *sb __maybe_unused)
++{
++#if IS_ENABLED(CONFIG_F2FS_FS)
++	return sb->s_magic == F2FS_SUPER_MAGIC;
++#else
++	return 0;
++#endif
++}
++
 +/* ---------------------------------------------------------------------- */
 +/*
 + * they can't be an aufs branch.
@@ -17887,11 +17899,20 @@ diff -urN /usr/share/empty/fs/aufs/fstype.h linux/fs/aufs/fstype.h
 +		&& !nfs_server_capable(inode, NFS_CAP_ACLS);
 +}
 +
++/*
++ * filesystems which requires inode-lock in open.
++ */
++static inline int au_test_fs_unlock_for_open(struct super_block *sb)
++{
++	return au_test_nfs(sb)
++		|| au_test_f2fs(sb);
++}
++
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_FSTYPE_H__ */
 diff -urN /usr/share/empty/fs/aufs/hbl.h linux/fs/aufs/hbl.h
 --- /usr/share/empty/fs/aufs/hbl.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/hbl.h	2024-10-05 00:15:35.074661275 +0200
++++ linux/fs/aufs/hbl.h	2022-11-05 23:02:18.965889284 +0100
 @@ -0,0 +1,65 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -17960,7 +17981,7 @@ diff -urN /usr/share/empty/fs/aufs/hbl.h linux/fs/aufs/hbl.h
 +#endif /* __AUFS_HBL_H__ */
 diff -urN /usr/share/empty/fs/aufs/hfsnotify.c linux/fs/aufs/hfsnotify.c
 --- /usr/share/empty/fs/aufs/hfsnotify.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/hfsnotify.c	2024-10-05 00:15:35.077994526 +0200
++++ linux/fs/aufs/hfsnotify.c	2022-11-05 23:02:18.965889284 +0100
 @@ -0,0 +1,290 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -18254,7 +18275,7 @@ diff -urN /usr/share/empty/fs/aufs/hfsnotify.c linux/fs/aufs/hfsnotify.c
 +};
 diff -urN /usr/share/empty/fs/aufs/hfsplus.c linux/fs/aufs/hfsplus.c
 --- /usr/share/empty/fs/aufs/hfsplus.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/hfsplus.c	2024-10-05 00:15:35.077994526 +0200
++++ linux/fs/aufs/hfsplus.c	2022-11-05 23:02:18.965889284 +0100
 @@ -0,0 +1,60 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -18318,7 +18339,7 @@ diff -urN /usr/share/empty/fs/aufs/hfsplus.c linux/fs/aufs/hfsplus.c
 +}
 diff -urN /usr/share/empty/fs/aufs/hnotify.c linux/fs/aufs/hnotify.c
 --- /usr/share/empty/fs/aufs/hnotify.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/hnotify.c	2024-10-05 00:15:35.081327778 +0200
++++ linux/fs/aufs/hnotify.c	2024-11-10 01:09:28.606384527 +0100
 @@ -0,0 +1,715 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -19037,7 +19058,7 @@ diff -urN /usr/share/empty/fs/aufs/hnotify.c linux/fs/aufs/hnotify.c
 +}
 diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c
 --- /usr/share/empty/fs/aufs/iinfo.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/iinfo.c	2024-10-05 00:15:35.097994035 +0200
++++ linux/fs/aufs/iinfo.c	2022-11-05 23:02:18.965889284 +0100
 @@ -0,0 +1,286 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -19327,7 +19348,7 @@ diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c
 +}
 diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
 --- /usr/share/empty/fs/aufs/inode.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/inode.c	2024-10-06 23:39:14.959365369 +0200
++++ linux/fs/aufs/inode.c	2024-11-18 12:46:45.636363225 +0100
 @@ -0,0 +1,531 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -19748,7 +19769,7 @@ diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
 +	if (IS_ERR(inode))
 +		goto out_xinondir;
 +
-+	AuDbg("%lx, new %d\n", inode->i_state, !!(inode->i_state & I_NEW));
++	AuDbg("%x, new %d\n", inode->i_state, !!(inode->i_state & I_NEW));
 +	if (inode->i_state & I_NEW) {
 +		ii_write_lock_new_child(inode);
 +		err = set_inode(inode, dentry);
@@ -19862,7 +19883,7 @@ diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
 +}
 diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 --- /usr/share/empty/fs/aufs/inode.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/inode.h	2024-10-05 00:15:35.104660538 +0200
++++ linux/fs/aufs/inode.h	2024-11-10 01:09:28.606384527 +0100
 @@ -0,0 +1,707 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -20573,7 +20594,7 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 +#endif /* __AUFS_INODE_H__ */
 diff -urN /usr/share/empty/fs/aufs/ioctl.c linux/fs/aufs/ioctl.c
 --- /usr/share/empty/fs/aufs/ioctl.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/ioctl.c	2024-10-05 00:15:35.104660538 +0200
++++ linux/fs/aufs/ioctl.c	2022-11-05 23:02:18.965889284 +0100
 @@ -0,0 +1,220 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -20797,8 +20818,8 @@ diff -urN /usr/share/empty/fs/aufs/ioctl.c linux/fs/aufs/ioctl.c
 +#endif
 diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 --- /usr/share/empty/fs/aufs/i_op_add.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op_add.c	2024-10-05 00:15:35.087994281 +0200
-@@ -0,0 +1,972 @@
++++ linux/fs/aufs/i_op_add.c	2024-11-18 12:46:45.636363225 +0100
+@@ -0,0 +1,971 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -21305,8 +21326,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +		goto out_h_file;
 +	}
 +
-+	if (!inode->i_nlink)
-+		set_nlink(inode, 1);
++	au_init_nlink(inode, 1);
 +	d_tmpfile(file, inode);
 +	au_di(dentry)->di_tmpfile = 1;
 +	get_file(h_file);
@@ -21773,7 +21793,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +}
 diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 --- /usr/share/empty/fs/aufs/i_op.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op.c	2024-10-05 00:15:35.084661029 +0200
++++ linux/fs/aufs/i_op.c	2024-11-18 12:46:45.636363225 +0100
 @@ -0,0 +1,1520 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -22955,7 +22975,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +		n += st->nlink;
 +		smp_mb(); /* for i_nlink */
 +		/* 0 can happen */
-+		set_nlink(inode, n);
++		au_set_nlink(inode, n);
 +	}
 +
 +	spin_lock(&inode->i_lock);
@@ -23297,7 +23317,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +};
 diff -urN /usr/share/empty/fs/aufs/i_op_del.c linux/fs/aufs/i_op_del.c
 --- /usr/share/empty/fs/aufs/i_op_del.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op_del.c	2024-10-05 00:15:35.091327532 +0200
++++ linux/fs/aufs/i_op_del.c	2023-10-31 09:31:04.199880750 +0100
 @@ -0,0 +1,523 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -23824,7 +23844,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_del.c linux/fs/aufs/i_op_del.c
 +}
 diff -urN /usr/share/empty/fs/aufs/i_op_ren.c linux/fs/aufs/i_op_ren.c
 --- /usr/share/empty/fs/aufs/i_op_ren.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op_ren.c	2024-10-05 00:15:35.094660784 +0200
++++ linux/fs/aufs/i_op_ren.c	2024-11-10 01:09:28.606384527 +0100
 @@ -0,0 +1,1264 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -25092,8 +25112,8 @@ diff -urN /usr/share/empty/fs/aufs/i_op_ren.c linux/fs/aufs/i_op_ren.c
 +}
 diff -urN /usr/share/empty/fs/aufs/Kconfig linux/fs/aufs/Kconfig
 --- /usr/share/empty/fs/aufs/Kconfig	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/Kconfig	2024-10-05 00:15:34.994663239 +0200
-@@ -0,0 +1,199 @@
++++ linux/fs/aufs/Kconfig	2024-11-18 12:46:45.633029891 +0100
+@@ -0,0 +1,201 @@
 +# SPDX-License-Identifier: GPL-2.0
 +config AUFS_FS
 +	tristate "Aufs (Advanced multi layered unification filesystem) support"
@@ -25158,13 +25178,15 @@ diff -urN /usr/share/empty/fs/aufs/Kconfig linux/fs/aufs/Kconfig
 +	It will have a negative impact to the performance.
 +	See detail in aufs.5.
 +
++if AUFS_HNOTIFY
 +choice
-+	prompt "method" if AUFS_HNOTIFY
++	prompt "method"
 +	default AUFS_HFSNOTIFY
 +config AUFS_HFSNOTIFY
 +	bool "fsnotify"
 +	select FSNOTIFY
 +endchoice
++endif
 +
 +config AUFS_EXPORT
 +	bool "NFS-exportable aufs"
@@ -25295,7 +25317,7 @@ diff -urN /usr/share/empty/fs/aufs/Kconfig linux/fs/aufs/Kconfig
 +endif
 diff -urN /usr/share/empty/fs/aufs/lcnt.h linux/fs/aufs/lcnt.h
 --- /usr/share/empty/fs/aufs/lcnt.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/lcnt.h	2024-10-05 00:15:35.107993789 +0200
++++ linux/fs/aufs/lcnt.h	2024-11-18 12:46:45.636363225 +0100
 @@ -0,0 +1,186 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -25478,14 +25500,14 @@ diff -urN /usr/share/empty/fs/aufs/lcnt.h linux/fs/aufs/lcnt.h
 +		AuDbg("%s = %ld\n", #val, l);	\
 +} while (0)
 +#else
-+#define AuLCntZero(val)		do {} while (0)
++AuStubVoid(AuLCntZero, long val __maybe_unused);
 +#endif
 +
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_LCNT_H__ */
 diff -urN /usr/share/empty/fs/aufs/loop.c linux/fs/aufs/loop.c
 --- /usr/share/empty/fs/aufs/loop.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/loop.c	2024-10-05 00:15:35.111327041 +0200
++++ linux/fs/aufs/loop.c	2022-11-05 23:02:18.965889284 +0100
 @@ -0,0 +1,148 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -25637,7 +25659,7 @@ diff -urN /usr/share/empty/fs/aufs/loop.c linux/fs/aufs/loop.c
 +}
 diff -urN /usr/share/empty/fs/aufs/loop.h linux/fs/aufs/loop.h
 --- /usr/share/empty/fs/aufs/loop.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/loop.h	2024-10-05 00:15:35.111327041 +0200
++++ linux/fs/aufs/loop.h	2022-11-05 23:02:18.965889284 +0100
 @@ -0,0 +1,55 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -25696,7 +25718,7 @@ diff -urN /usr/share/empty/fs/aufs/loop.h linux/fs/aufs/loop.h
 +#endif /* __AUFS_LOOP_H__ */
 diff -urN /usr/share/empty/fs/aufs/magic.mk linux/fs/aufs/magic.mk
 --- /usr/share/empty/fs/aufs/magic.mk	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/magic.mk	2024-10-05 00:15:35.114660292 +0200
++++ linux/fs/aufs/magic.mk	2022-11-05 23:02:18.965889284 +0100
 @@ -0,0 +1,31 @@
 +# SPDX-License-Identifier: GPL-2.0
 +
@@ -25731,7 +25753,7 @@ diff -urN /usr/share/empty/fs/aufs/magic.mk linux/fs/aufs/magic.mk
 +endif
 diff -urN /usr/share/empty/fs/aufs/Makefile linux/fs/aufs/Makefile
 --- /usr/share/empty/fs/aufs/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/Makefile	2024-10-05 00:15:34.997996490 +0200
++++ linux/fs/aufs/Makefile	2022-11-05 23:02:18.959222617 +0100
 @@ -0,0 +1,46 @@
 +# SPDX-License-Identifier: GPL-2.0
 +
@@ -25781,7 +25803,7 @@ diff -urN /usr/share/empty/fs/aufs/Makefile linux/fs/aufs/Makefile
 +aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o
 diff -urN /usr/share/empty/fs/aufs/module.c linux/fs/aufs/module.c
 --- /usr/share/empty/fs/aufs/module.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/module.c	2024-10-05 00:15:35.117993544 +0200
++++ linux/fs/aufs/module.c	2022-11-05 23:02:18.965889284 +0100
 @@ -0,0 +1,273 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -26058,7 +26080,7 @@ diff -urN /usr/share/empty/fs/aufs/module.c linux/fs/aufs/module.c
 +module_exit(aufs_exit);
 diff -urN /usr/share/empty/fs/aufs/module.h linux/fs/aufs/module.h
 --- /usr/share/empty/fs/aufs/module.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/module.h	2024-10-05 00:15:35.117993544 +0200
++++ linux/fs/aufs/module.h	2024-11-10 01:09:28.606384527 +0100
 @@ -0,0 +1,180 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -26242,7 +26264,7 @@ diff -urN /usr/share/empty/fs/aufs/module.h linux/fs/aufs/module.h
 +#endif /* __AUFS_MODULE_H__ */
 diff -urN /usr/share/empty/fs/aufs/mvdown.c linux/fs/aufs/mvdown.c
 --- /usr/share/empty/fs/aufs/mvdown.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/mvdown.c	2024-10-05 00:15:35.121326795 +0200
++++ linux/fs/aufs/mvdown.c	2024-11-10 01:09:28.606384527 +0100
 @@ -0,0 +1,713 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -26959,7 +26981,7 @@ diff -urN /usr/share/empty/fs/aufs/mvdown.c linux/fs/aufs/mvdown.c
 +}
 diff -urN /usr/share/empty/fs/aufs/opts.c linux/fs/aufs/opts.c
 --- /usr/share/empty/fs/aufs/opts.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/opts.c	2024-10-05 00:15:35.124660047 +0200
++++ linux/fs/aufs/opts.c	2024-11-10 01:09:28.609717860 +0100
 @@ -0,0 +1,1030 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -27993,7 +28015,7 @@ diff -urN /usr/share/empty/fs/aufs/opts.c linux/fs/aufs/opts.c
 +}
 diff -urN /usr/share/empty/fs/aufs/opts.h linux/fs/aufs/opts.h
 --- /usr/share/empty/fs/aufs/opts.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/opts.h	2024-10-05 00:15:35.127993298 +0200
++++ linux/fs/aufs/opts.h	2024-11-10 01:09:28.609717860 +0100
 @@ -0,0 +1,264 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -28261,7 +28283,7 @@ diff -urN /usr/share/empty/fs/aufs/opts.h linux/fs/aufs/opts.h
 +#endif /* __AUFS_OPTS_H__ */
 diff -urN /usr/share/empty/fs/aufs/plink.c linux/fs/aufs/plink.c
 --- /usr/share/empty/fs/aufs/plink.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/plink.c	2024-10-05 00:15:35.127993298 +0200
++++ linux/fs/aufs/plink.c	2022-11-05 23:02:18.969222617 +0100
 @@ -0,0 +1,516 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -28781,7 +28803,7 @@ diff -urN /usr/share/empty/fs/aufs/plink.c linux/fs/aufs/plink.c
 +}
 diff -urN /usr/share/empty/fs/aufs/poll.c linux/fs/aufs/poll.c
 --- /usr/share/empty/fs/aufs/poll.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/poll.c	2024-10-05 00:15:35.131326550 +0200
++++ linux/fs/aufs/poll.c	2022-11-05 23:02:18.969222617 +0100
 @@ -0,0 +1,51 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -28836,7 +28858,7 @@ diff -urN /usr/share/empty/fs/aufs/poll.c linux/fs/aufs/poll.c
 +}
 diff -urN /usr/share/empty/fs/aufs/posix_acl.c linux/fs/aufs/posix_acl.c
 --- /usr/share/empty/fs/aufs/posix_acl.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/posix_acl.c	2024-10-05 00:15:35.134659801 +0200
++++ linux/fs/aufs/posix_acl.c	2023-10-31 09:31:04.199880750 +0100
 @@ -0,0 +1,108 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -28948,7 +28970,7 @@ diff -urN /usr/share/empty/fs/aufs/posix_acl.c linux/fs/aufs/posix_acl.c
 +}
 diff -urN /usr/share/empty/fs/aufs/procfs.c linux/fs/aufs/procfs.c
 --- /usr/share/empty/fs/aufs/procfs.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/procfs.c	2024-10-05 00:15:35.137993053 +0200
++++ linux/fs/aufs/procfs.c	2022-11-05 23:02:18.969222617 +0100
 @@ -0,0 +1,170 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -29122,7 +29144,7 @@ diff -urN /usr/share/empty/fs/aufs/procfs.c linux/fs/aufs/procfs.c
 +}
 diff -urN /usr/share/empty/fs/aufs/rdu.c linux/fs/aufs/rdu.c
 --- /usr/share/empty/fs/aufs/rdu.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/rdu.c	2024-10-05 00:15:35.137993053 +0200
++++ linux/fs/aufs/rdu.c	2024-11-10 01:09:28.609717860 +0100
 @@ -0,0 +1,384 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -29510,7 +29532,7 @@ diff -urN /usr/share/empty/fs/aufs/rdu.c linux/fs/aufs/rdu.c
 +#endif
 diff -urN /usr/share/empty/fs/aufs/rwsem.h linux/fs/aufs/rwsem.h
 --- /usr/share/empty/fs/aufs/rwsem.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/rwsem.h	2024-10-05 00:15:35.141326304 +0200
++++ linux/fs/aufs/rwsem.h	2024-10-15 11:25:59.893110313 +0200
 @@ -0,0 +1,85 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -29599,7 +29621,7 @@ diff -urN /usr/share/empty/fs/aufs/rwsem.h linux/fs/aufs/rwsem.h
 +#endif /* __AUFS_RWSEM_H__ */
 diff -urN /usr/share/empty/fs/aufs/sbinfo.c linux/fs/aufs/sbinfo.c
 --- /usr/share/empty/fs/aufs/sbinfo.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/sbinfo.c	2024-10-05 00:15:35.144659556 +0200
++++ linux/fs/aufs/sbinfo.c	2022-11-05 23:02:18.969222617 +0100
 @@ -0,0 +1,316 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -29919,7 +29941,7 @@ diff -urN /usr/share/empty/fs/aufs/sbinfo.c linux/fs/aufs/sbinfo.c
 +}
 diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
 --- /usr/share/empty/fs/aufs/super.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/super.c	2024-10-05 00:15:35.147992807 +0200
++++ linux/fs/aufs/super.c	2024-11-18 12:46:45.636363225 +0100
 @@ -0,0 +1,871 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -30714,7 +30736,7 @@ diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
 +	inode->i_op = aufs_iop + AuIop_DIR; /* with getattr by default */
 +	inode->i_fop = &aufs_dir_fop;
 +	inode->i_mode = S_IFDIR;
-+	set_nlink(inode, 2);
++	au_init_nlink(inode, 2);
 +	unlock_new_inode(inode);
 +
 +	root = d_make_root(inode);
@@ -30794,7 +30816,7 @@ diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
 +};
 diff -urN /usr/share/empty/fs/aufs/super.h linux/fs/aufs/super.h
 --- /usr/share/empty/fs/aufs/super.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/super.h	2024-10-05 00:15:35.147992807 +0200
++++ linux/fs/aufs/super.h	2024-11-10 01:09:28.609717860 +0100
 @@ -0,0 +1,592 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -31390,7 +31412,7 @@ diff -urN /usr/share/empty/fs/aufs/super.h linux/fs/aufs/super.h
 +#endif /* __AUFS_SUPER_H__ */
 diff -urN /usr/share/empty/fs/aufs/sysaufs.c linux/fs/aufs/sysaufs.c
 --- /usr/share/empty/fs/aufs/sysaufs.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/sysaufs.c	2024-10-05 00:15:35.151326059 +0200
++++ linux/fs/aufs/sysaufs.c	2023-10-10 22:51:18.033248030 +0200
 @@ -0,0 +1,94 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -31488,7 +31510,7 @@ diff -urN /usr/share/empty/fs/aufs/sysaufs.c linux/fs/aufs/sysaufs.c
 +}
 diff -urN /usr/share/empty/fs/aufs/sysaufs.h linux/fs/aufs/sysaufs.h
 --- /usr/share/empty/fs/aufs/sysaufs.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/sysaufs.h	2024-10-05 00:15:35.154659310 +0200
++++ linux/fs/aufs/sysaufs.h	2022-11-05 23:02:18.969222617 +0100
 @@ -0,0 +1,102 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -31594,7 +31616,7 @@ diff -urN /usr/share/empty/fs/aufs/sysaufs.h linux/fs/aufs/sysaufs.h
 +#endif /* __SYSAUFS_H__ */
 diff -urN /usr/share/empty/fs/aufs/sysfs.c linux/fs/aufs/sysfs.c
 --- /usr/share/empty/fs/aufs/sysfs.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/sysfs.c	2024-10-05 00:15:35.154659310 +0200
++++ linux/fs/aufs/sysfs.c	2022-11-05 23:02:18.969222617 +0100
 @@ -0,0 +1,374 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -31972,7 +31994,7 @@ diff -urN /usr/share/empty/fs/aufs/sysfs.c linux/fs/aufs/sysfs.c
 +}
 diff -urN /usr/share/empty/fs/aufs/sysrq.c linux/fs/aufs/sysrq.c
 --- /usr/share/empty/fs/aufs/sysrq.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/sysrq.c	2024-10-05 00:15:35.157992562 +0200
++++ linux/fs/aufs/sysrq.c	2023-10-31 09:31:04.199880750 +0100
 @@ -0,0 +1,149 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -32125,7 +32147,7 @@ diff -urN /usr/share/empty/fs/aufs/sysrq.c linux/fs/aufs/sysrq.c
 +}
 diff -urN /usr/share/empty/fs/aufs/vdir.c linux/fs/aufs/vdir.c
 --- /usr/share/empty/fs/aufs/vdir.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/vdir.c	2024-10-06 23:39:14.966031860 +0200
++++ linux/fs/aufs/vdir.c	2024-11-18 12:46:45.636363225 +0100
 @@ -0,0 +1,896 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -32882,6 +32904,7 @@ diff -urN /usr/share/empty/fs/aufs/vdir.c linux/fs/aufs/vdir.c
 +		goto out;
 +
 +	allocated = NULL;
++	inode = file_inode(file);
 +	vdir_cache = au_fvdir_cache(file);
 +	if (!vdir_cache) {
 +		vdir_cache = alloc_vdir(file);
@@ -32889,7 +32912,8 @@ diff -urN /usr/share/empty/fs/aufs/vdir.c linux/fs/aufs/vdir.c
 +		if (IS_ERR(vdir_cache))
 +			goto out;
 +		allocated = vdir_cache;
-+	} else if (!file->f_pos && vdir_cache->vd_version != file->f_version) {
++	} else if (!file->f_pos
++		   && vdir_cache->vd_version != inode_query_iversion(inode)) {
 +		/* test file->f_pos here instead of ctx->pos */
 +		err = reinit_vdir(vdir_cache);
 +		if (unlikely(err))
@@ -32897,10 +32921,8 @@ diff -urN /usr/share/empty/fs/aufs/vdir.c linux/fs/aufs/vdir.c
 +	} else
 +		return 0; /* success */
 +
-+	inode = file_inode(file);
 +	err = copy_vdir(vdir_cache, au_ivdir(inode));
 +	if (!err) {
-+		file->f_version = inode_query_iversion(inode);
 +		if (allocated)
 +			au_set_fvdir_cache(file, allocated);
 +	} else if (allocated)
@@ -33025,7 +33047,7 @@ diff -urN /usr/share/empty/fs/aufs/vdir.c linux/fs/aufs/vdir.c
 +}
 diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
 --- /usr/share/empty/fs/aufs/vfsub.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/vfsub.c	2024-10-05 00:15:35.164659065 +0200
++++ linux/fs/aufs/vfsub.c	2024-11-10 01:09:28.609717860 +0100
 @@ -0,0 +1,919 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -33948,8 +33970,8 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
 +}
 diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
 --- /usr/share/empty/fs/aufs/vfsub.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/vfsub.h	2024-10-05 00:15:35.167992316 +0200
-@@ -0,0 +1,402 @@
++++ linux/fs/aufs/vfsub.h	2024-11-18 12:46:45.636363225 +0100
+@@ -0,0 +1,418 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -34008,6 +34030,22 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
 +
 +/* ---------------------------------------------------------------------- */
 +
++static inline void au_set_nlink(struct inode *inode, unsigned int nlink)
++{
++	/*
++	 * stop setting the value equal to the current one, in order to stop
++	 * a useless warning from vfs:destroy_inode() about sb->s_remove_count.
++	 */
++	if (nlink != inode->i_nlink)
++		set_nlink(inode, nlink);
++}
++
++static inline void au_init_nlink(struct inode *inode, unsigned int nlink)
++{
++	/* to ignore sb->s_remove_count, do not use set_nlink() */
++	inode->__i_nlink = nlink;
++}
++
 +static inline void vfsub_drop_nlink(struct inode *inode)
 +{
 +	AuDebugOn(!inode->i_nlink);
@@ -34354,7 +34392,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
 +#endif /* __AUFS_VFSUB_H__ */
 diff -urN /usr/share/empty/fs/aufs/wbr_policy.c linux/fs/aufs/wbr_policy.c
 --- /usr/share/empty/fs/aufs/wbr_policy.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/wbr_policy.c	2024-10-05 00:15:35.167992316 +0200
++++ linux/fs/aufs/wbr_policy.c	2024-11-10 01:09:28.609717860 +0100
 @@ -0,0 +1,830 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -35188,7 +35226,7 @@ diff -urN /usr/share/empty/fs/aufs/wbr_policy.c linux/fs/aufs/wbr_policy.c
 +};
 diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 --- /usr/share/empty/fs/aufs/whout.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/whout.c	2024-10-05 00:15:35.171325568 +0200
++++ linux/fs/aufs/whout.c	2023-10-31 09:31:04.199880750 +0100
 @@ -0,0 +1,1072 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -36264,7 +36302,7 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 +}
 diff -urN /usr/share/empty/fs/aufs/whout.h linux/fs/aufs/whout.h
 --- /usr/share/empty/fs/aufs/whout.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/whout.h	2024-10-05 00:15:35.174658819 +0200
++++ linux/fs/aufs/whout.h	2023-10-31 09:31:04.199880750 +0100
 @@ -0,0 +1,87 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -36355,8 +36393,8 @@ diff -urN /usr/share/empty/fs/aufs/whout.h linux/fs/aufs/whout.h
 +#endif /* __AUFS_WHOUT_H__ */
 diff -urN /usr/share/empty/fs/aufs/wkq.c linux/fs/aufs/wkq.c
 --- /usr/share/empty/fs/aufs/wkq.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/wkq.c	2024-10-05 00:15:35.177992071 +0200
-@@ -0,0 +1,372 @@
++++ linux/fs/aufs/wkq.c	2024-11-18 12:46:45.636363225 +0100
+@@ -0,0 +1,370 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -36590,8 +36628,6 @@ diff -urN /usr/share/empty/fs/aufs/wkq.c linux/fs/aufs/wkq.c
 +/*
 + * Since struct completion is large, try allocating it dynamically.
 + */
-+#define AuWkqCompDeclare(name)	struct completion *comp = NULL
-+
 +static int au_wkq_comp_alloc(struct au_wkinfo *wkinfo, struct completion **comp)
 +{
 +	*comp = kmalloc(sizeof(**comp), GFP_NOFS);
@@ -36638,7 +36674,7 @@ diff -urN /usr/share/empty/fs/aufs/wkq.c linux/fs/aufs/wkq.c
 +int au_wkq_do_wait(unsigned int flags, au_wkq_func_t func, void *args)
 +{
 +	int err;
-+	AuWkqCompDeclare(comp);
++	struct completion *comp = NULL;
 +	struct au_wkinfo wkinfo = {
 +		.flags	= flags,
 +		.func	= func,
@@ -36731,7 +36767,7 @@ diff -urN /usr/share/empty/fs/aufs/wkq.c linux/fs/aufs/wkq.c
 +}
 diff -urN /usr/share/empty/fs/aufs/wkq.h linux/fs/aufs/wkq.h
 --- /usr/share/empty/fs/aufs/wkq.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/wkq.h	2024-10-05 00:15:35.181325322 +0200
++++ linux/fs/aufs/wkq.h	2024-11-10 01:09:28.609717860 +0100
 @@ -0,0 +1,89 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -36824,7 +36860,7 @@ diff -urN /usr/share/empty/fs/aufs/wkq.h linux/fs/aufs/wkq.h
 +#endif /* __AUFS_WKQ_H__ */
 diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
 --- /usr/share/empty/fs/aufs/xattr.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/xattr.c	2024-10-05 00:15:35.181325322 +0200
++++ linux/fs/aufs/xattr.c	2024-10-15 11:25:59.893110313 +0200
 @@ -0,0 +1,360 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -37188,7 +37224,7 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
 +}
 diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
 --- /usr/share/empty/fs/aufs/xino.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/xino.c	2024-10-05 00:15:35.184658574 +0200
++++ linux/fs/aufs/xino.c	2023-10-31 09:31:04.203214083 +0100
 @@ -0,0 +1,1926 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -39118,7 +39154,7 @@ diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
 +}
 diff -urN /usr/share/empty/include/uapi/linux/aufs_type.h linux/include/uapi/linux/aufs_type.h
 --- /usr/share/empty/include/uapi/linux/aufs_type.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/include/uapi/linux/aufs_type.h	2024-10-06 23:39:14.976031597 +0200
++++ linux/include/uapi/linux/aufs_type.h	2024-11-18 12:46:45.636363225 +0100
 @@ -0,0 +1,452 @@
 +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 +/*
@@ -39162,7 +39198,7 @@ diff -urN /usr/share/empty/include/uapi/linux/aufs_type.h linux/include/uapi/lin
 +#include <limits.h>
 +#endif /* __KERNEL__ */
 +
-+#define AUFS_VERSION	"6.11.2-20241007"
++#define AUFS_VERSION	"6.x-rcN-20241118"
 +
 +/* todo? move this to linux-2.6.19/include/magic.h */
 +#define AUFS_SUPER_MAGIC	('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
@@ -39573,7 +39609,7 @@ diff -urN /usr/share/empty/include/uapi/linux/aufs_type.h linux/include/uapi/lin
 +
 +#endif /* __AUFS_TYPE_H__ */
 SPDX-License-Identifier: GPL-2.0
-aufs6.11.2 loopback patch
+aufs6.x-rcN loopback patch
 
 diff --git a/drivers/block/loop.c b/drivers/block/loop.c
 index 479480f25a6c..ba3477c30e29 100644
@@ -39780,7 +39816,7 @@ index 03d4908a6c03..34d356e181d5 100644
  
  #endif /* __KERNEL__ */
 diff --git a/fs/aufs/super.c b/fs/aufs/super.c
-index 07d3412e950f..c4a00f620e57 100644
+index ec1cd23719fd..55cde6ac582b 100644
 --- a/fs/aufs/super.c
 +++ b/fs/aufs/super.c
 @@ -758,7 +758,10 @@ const struct super_operations aufs_sop = {
@@ -39796,10 +39832,10 @@ index 07d3412e950f..c4a00f620e57 100644
  
  /* ---------------------------------------------------------------------- */
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 5092a7e8f9e9..732bd5895903 100644
+index 51b64b2ad82c..8c3ff295b020 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -2206,6 +2206,11 @@ struct super_operations {
+@@ -2248,6 +2248,11 @@ struct super_operations {
  	long (*free_cached_objects)(struct super_block *,
  				    struct shrink_control *);
  	void (*shutdown)(struct super_block *sb);
diff --git a/kernel-multiarch.config b/kernel-multiarch.config
index de137fe0..a827df15 100644
--- a/kernel-multiarch.config
+++ b/kernel-multiarch.config
@@ -790,11 +790,18 @@ BLK_DEV_RNBD_SERVER all=m
 #- *** FILE: drivers/block/zram/Kconfig ***
 #-
 ZRAM all=m
+ZRAM_BACKEND_LZ4 all=y
+ZRAM_BACKEND_LZ4HC all=y
+ZRAM_BACKEND_ZSTD all=y
+ZRAM_BACKEND_DEFLATE all=y
+ZRAM_BACKEND_842 all=y
+ZRAM_BACKEND_LZO all=y
 ZRAM_DEF_COMP_LZORLE all=y
-ZRAM_DEF_COMP_ZSTD all=n
-ZRAM_DEF_COMP_LZ4 all=n
 ZRAM_DEF_COMP_LZO all=n
+ZRAM_DEF_COMP_LZ4 all=n
 ZRAM_DEF_COMP_LZ4HC all=n
+ZRAM_DEF_COMP_ZSTD all=n
+ZRAM_DEF_COMP_DEFLATE all=n
 ZRAM_DEF_COMP_842 all=n
 ZRAM_WRITEBACK all=y
 ZRAM_MEMORY_TRACKING all=y
@@ -823,6 +830,7 @@ BT_HCIUART_RTL all=y
 BT_HCIUART_QCA all=y
 BT_HCIUART_AG6XX all=y
 BT_HCIUART_MRVL all=y
+BT_HCIUART_AML all=y
 BT_HCIBCM203X all=m
 BT_HCIBCM4377 all=m
 BT_HCIBPA10X all=m
@@ -1546,6 +1554,7 @@ XILINX_DMA all=m
 XILINX_XDMA all=m
 XILINX_ZYNQMP_DMA arm64=m
 XILINX_ZYNQMP_DPDMA all=m
+#- file drivers/dma/amd/Kconfig goes here
 #- file drivers/dma/bestcomm/Kconfig goes here
 #- file drivers/dma/mediatek/Kconfig goes here
 #- file drivers/dma/ptdma/Kconfig goes here
@@ -1563,6 +1572,11 @@ XILINX_ZYNQMP_DPDMA all=m
 ASYNC_TX_DMA all=y
 DMATEST all=n
 
+#-
+#- *** FILE: drivers/dma/amd/Kconfig ***
+#-
+AMD_QDMA all=m
+
 #-
 #- *** FILE: drivers/dma/dw-edma/Kconfig ***
 #-
@@ -1661,6 +1675,7 @@ EXTCON_FSA9480 all=m
 EXTCON_GPIO all=m
 EXTCON_INTEL_INT3496 all=m
 EXTCON_INTEL_MRFLD all=m
+EXTCON_LC824206XA all=m
 EXTCON_MAX14577 all=m
 EXTCON_MAX3355 all=m
 EXTCON_MAX77693 all=m
@@ -1724,12 +1739,18 @@ ARM_FFA_TRANSPORT arm64=m
 #-
 ARM_SCMI_PROTOCOL arm=m arm64=m
 ARM_SCMI_RAW_MODE_SUPPORT arm=n arm64=n
+#- file drivers/firmware/arm_scmi/transports/Kconfig goes here
+#- file drivers/firmware/arm_scmi/vendors/imx/Kconfig goes here
+ARM_SCMI_POWER_CONTROL arm=m arm64=m
+
+#-
+#- *** FILE: drivers/firmware/arm_scmi/transports/Kconfig ***
+#-
 ARM_SCMI_TRANSPORT_MAILBOX arm=y arm64=y
-ARM_SCMI_TRANSPORT_OPTEE arm=y arm64=y
 ARM_SCMI_TRANSPORT_SMC arm=y arm64=y
 ARM_SCMI_TRANSPORT_SMC_ATOMIC_ENABLE arm=n arm64=n
+ARM_SCMI_TRANSPORT_OPTEE arm=y arm64=y
 ARM_SCMI_TRANSPORT_VIRTIO arm=n arm64=n
-ARM_SCMI_POWER_CONTROL arm=m arm64=m
 
 #-
 #- *** FILE: drivers/firmware/efi/Kconfig ***
@@ -1956,6 +1977,11 @@ GPIO_VIRTUSER all=m
 #-
 DRM all=m
 DRM_DEBUG_MM all=n
+DRM_PANIC all=y
+DRM_PANIC_FOREGROUND_COLOR all=0xffffff
+DRM_PANIC_BACKGROUND_COLOR all=0x000000
+DRM_PANIC_DEBUG all=n
+DRM_PANIC_SCREEN all="kmsg"
 DRM_FBDEV_EMULATION all=y
 DRM_FBDEV_OVERALLOC all=100
 DRM_LOAD_EDID_FIRMWARE all=y
@@ -2630,6 +2656,7 @@ HID_GFRM all=m
 HID_GLORIOUS all=m
 HID_HOLTEK all=m
 HOLTEK_FF all=y
+HID_GOODIX_SPI all=m
 HID_GOOGLE_HAMMER all=m
 HID_GOOGLE_STADIA_FF all=m
 HID_VIVALDI all=m
@@ -2973,6 +3000,7 @@ SENSORS_SCH5627 all=m
 SENSORS_SCH5636 all=m
 SENSORS_STTS751 all=m
 SENSORS_SURFACE_FAN all=m
+SENSORS_SURFACE_TEMP all=m
 SENSORS_ADC128D818 all=m
 SENSORS_ADS7828 all=m
 SENSORS_ADS7871 all=m
@@ -3145,7 +3173,6 @@ STM_SOURCE_FTRACE all=m
 #-
 I2C all=m ppc=y ppc64=y
 I2C_BOARDINFO all=y
-I2C_COMPAT all=y
 I2C_CHARDEV all=m
 I2C_MUX all=m
 #- file drivers/i2c/muxes/Kconfig goes here
@@ -3202,6 +3229,7 @@ I2C_BCM2835 arm=m arm64=m
 I2C_BRCMSTB arm=m arm64=m
 I2C_CADENCE arm64=m
 I2C_CBUS_GPIO all=m
+I2C_DESIGNWARE_CORE all=m
 I2C_DESIGNWARE_SLAVE all=y
 I2C_DESIGNWARE_PLATFORM all=m
 I2C_DESIGNWARE_AMDPSP all=y
@@ -3212,6 +3240,7 @@ I2C_EMEV2 all=m
 I2C_GPIO all=m
 I2C_GPIO_FAULT_INJECTOR all=y
 I2C_HISI arm64=m
+I2C_KEBA all=m
 I2C_KEMPLD all=m
 I2C_MLXBF arm64=m
 I2C_MESON arm64=m
@@ -3334,6 +3363,8 @@ ADXL367_SPI all=m
 ADXL367_I2C all=m
 ADXL372_SPI all=m
 ADXL372_I2C all=m
+ADXL380_SPI all=m
+ADXL380_I2C all=m
 BMA180 all=m
 BMA220 all=m
 BMA400 all=m
@@ -3374,7 +3405,9 @@ STK8BA50 all=m
 #- *** FILE: drivers/iio/adc/Kconfig ***
 #-
 AB8500_GPADC all=y
+AD4000 all=m
 AD4130 all=m
+AD4695 all=m
 AD7091R5 all=m
 AD7091R8 all=m
 AD7124 all=m
@@ -3438,6 +3471,7 @@ MEN_Z188_ADC all=m
 MESON_SARADC arm64=m
 MP2629_ADC all=m
 NAU7802 all=m
+PAC1921 all=m
 PAC1934 all=m
 QCOM_PM8XXX_XOADC arm=m
 QCOM_SPMI_IADC all=m
@@ -3583,6 +3617,7 @@ DPOT_DAC all=m
 DS4424 all=m
 LTC1660 all=m
 LTC2632 all=m
+LTC2664 all=m
 M62332 all=m
 MAX517 all=m
 MAX5522 all=m
@@ -3653,6 +3688,7 @@ MAX30102 all=m
 #-
 AM2315 all=m
 DHT11 all=m
+ENS210 all=m
 HDC100X all=m
 HDC2010 all=m
 HDC3020 all=m
@@ -3737,6 +3773,7 @@ APDS9300 all=m
 APDS9306 all=m
 APDS9960 all=m
 AS73211 all=m
+BH1745 all=m
 BH1750 all=m
 BH1780 all=m
 CM32181 all=m
@@ -3874,6 +3911,7 @@ MS5611 all=m
 MS5611_I2C all=m
 MS5611_SPI all=m
 MS5637 all=m
+SDP500 all=m
 IIO_ST_PRESS all=m
 IIO_ST_PRESS_I2C all=m
 IIO_ST_PRESS_SPI all=m
@@ -3886,6 +3924,7 @@ ZPA2326 all=m
 #-
 AS3935 all=m
 CROS_EC_MKBP_PROXIMITY all=m
+HX9023S all=m
 IRSD200 all=m
 ISL29501 all=m
 LIDAR_LITE_V2 all=m
@@ -3900,6 +3939,7 @@ SX9500 all=m
 SRF08 all=m
 VCNL3020 all=m
 VL53L0X_I2C all=m
+AW96103 all=m
 
 #-
 #- *** FILE: drivers/iio/resolver/Kconfig ***
@@ -4216,7 +4256,6 @@ KEYBOARD_MATRIX all=m
 KEYBOARD_LM8323 all=m
 KEYBOARD_LM8333 all=m
 KEYBOARD_MAX7359 all=m
-KEYBOARD_MCS all=m
 KEYBOARD_MPR121 all=m
 KEYBOARD_NEWTON all=m
 KEYBOARD_OPENCORES all=m
@@ -4251,6 +4290,7 @@ INPUT_ARIZONA_HAPTICS all=m
 INPUT_ATC260X_ONKEY all=m
 INPUT_ATMEL_CAPTOUCH arm=m arm64=m
 INPUT_BMA150 all=m
+INPUT_CS40L50_VIBRA all=m
 INPUT_E3X0_BUTTON all=m
 INPUT_PCSPKR all=m
 INPUT_PM8XXX_VIBRATOR arm=m
@@ -4413,9 +4453,6 @@ TOUCHSCREEN_CY8CTMG110 all=m
 TOUCHSCREEN_CYTTSP_CORE all=m
 TOUCHSCREEN_CYTTSP_I2C all=m
 TOUCHSCREEN_CYTTSP_SPI all=m
-TOUCHSCREEN_CYTTSP4_CORE all=m
-TOUCHSCREEN_CYTTSP4_I2C all=m
-TOUCHSCREEN_CYTTSP4_SPI all=m
 TOUCHSCREEN_CYTTSP5 all=m
 TOUCHSCREEN_DA9034 all=m
 TOUCHSCREEN_DA9052 all=m
@@ -4442,7 +4479,6 @@ TOUCHSCREEN_ELO all=m
 TOUCHSCREEN_WACOM_W8001 all=m
 TOUCHSCREEN_WACOM_I2C all=m
 TOUCHSCREEN_MAX11801 all=m
-TOUCHSCREEN_MCS5000 all=m
 TOUCHSCREEN_MMS114 all=m
 TOUCHSCREEN_MELFAS_MIP4 all=m
 TOUCHSCREEN_MSG2638 all=m
@@ -4696,6 +4732,7 @@ LEDS_IS31FL319X all=m
 LEDS_IS31FL32XX arm=m arm64=m
 #- LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
 LEDS_BLINKM all=m
+LEDS_BLINKM_MULTICOLOR all=y
 LEDS_SYSCON arm=y arm64=y
 LEDS_PM8058 arm=m
 LEDS_MLXCPLD all=m
@@ -4945,6 +4982,11 @@ CEC_GPIO all=m
 CEC_SECO all=m
 CEC_SECO_RC all=y
 
+#-
+#- *** FILE: drivers/media/cec/usb/extron-da-hd-4k-plus/Kconfig ***
+#-
+USB_EXTRON_DA_HD_4K_PLUS_CEC all=m
+
 #-
 #- *** FILE: drivers/media/cec/usb/pulse8/Kconfig ***
 #-
@@ -6208,6 +6250,7 @@ AD525X_DPOT_SPI all=m
 DUMMY_IRQ all=m
 IBM_ASM i386=m x86_64=m
 PHANTOM all=m
+RPMB all=m
 TIFM_CORE all=m
 TIFM_7XX1 all=m
 ICS932S401 all=m
@@ -6825,6 +6868,7 @@ CAN_XILINXCAN arm64=m
 #- file drivers/net/can/mscan/Kconfig goes here
 #- file drivers/net/can/peak_canfd/Kconfig goes here
 #- file drivers/net/can/rcar/Kconfig goes here
+#- file drivers/net/can/rockchip/Kconfig goes here
 #- file drivers/net/can/sja1000/Kconfig goes here
 #- file drivers/net/can/softing/Kconfig goes here
 #- file drivers/net/can/spi/Kconfig goes here
@@ -7115,6 +7159,7 @@ FEALNX all=m
 #- file drivers/net/ethernet/nxp/Kconfig goes here
 #- file drivers/net/ethernet/oki-semi/Kconfig goes here
 ETHOC all=m
+OA_TC6 all=m
 #- file drivers/net/ethernet/packetengines/Kconfig goes here
 #- file drivers/net/ethernet/pasemi/Kconfig goes here
 #- file drivers/net/ethernet/pensando/Kconfig goes here
@@ -7619,6 +7664,7 @@ MLX5_MACSEC all=y
 MLX5_EN_IPSEC all=y
 MLX5_EN_TLS all=y
 MLX5_SW_STEERING all=y
+MLX5_HW_STEERING all=y
 MLX5_SF all=y
 MLX5_DPLL all=m
 
@@ -7667,9 +7713,16 @@ ENC28J60 all=m
 ENC28J60_WRITEVERIFY all=n
 ENCX24J600 all=m
 LAN743X all=m
+#- file drivers/net/ethernet/microchip/lan865x/Kconfig goes here
 #- file drivers/net/ethernet/microchip/lan966x/Kconfig goes here
 #- file drivers/net/ethernet/microchip/sparx5/Kconfig goes here
 #- file drivers/net/ethernet/microchip/vcap/Kconfig goes here
+#- file drivers/net/ethernet/microchip/fdma/Kconfig goes here
+
+#-
+#- *** FILE: drivers/net/ethernet/microchip/lan865x/Kconfig ***
+#-
+LAN865X all=m
 
 #-
 #- *** FILE: drivers/net/ethernet/microchip/lan966x/Kconfig ***
@@ -7811,6 +7864,7 @@ ATP i386=m x86_64=m
 8139TOO_8129 all=y alpha=n
 8139_OLD_RX_RESET all=n ppc=y ppc64=y
 R8169 all=m sparc=n
+RTASE all=m
 
 #-
 #- *** FILE: drivers/net/ethernet/renesas/Kconfig ***
@@ -8762,6 +8816,7 @@ RTW89 all=m
 RTW89_8851BE all=m
 RTW89_8852AE all=m
 RTW89_8852BE all=m
+RTW89_8852BTE all=m
 RTW89_8852CE all=m
 RTW89_8922AE all=m
 RTW89_DEBUGMSG all=y
@@ -9090,6 +9145,7 @@ PCI_STUB all=m
 PCI_PF_STUB all=m
 XEN_PCIDEV_FRONTEND all=m
 PCI_IOV all=y
+PCI_NPEM all=y
 PCI_PRI all=y
 PCI_PASID all=y
 PCI_P2PDMA all=y
@@ -9310,6 +9366,7 @@ PHY_CAN_TRANSCEIVER=m
 #- file drivers/phy/microchip/Kconfig goes here
 #- file drivers/phy/motorola/Kconfig goes here
 #- file drivers/phy/mscc/Kconfig goes here
+#- file drivers/phy/nuvoton/Kconfig goes here
 #- file drivers/phy/qualcomm/Kconfig goes here
 #- file drivers/phy/ralink/Kconfig goes here
 #- file drivers/phy/realtek/Kconfig goes here
@@ -9470,6 +9527,7 @@ PINCTRL_MLXBF3 arm64=m
 #- file drivers/pinctrl/realtek/Kconfig goes here
 #- file drivers/pinctrl/renesas/Kconfig goes here
 #- file drivers/pinctrl/samsung/Kconfig goes here
+#- file drivers/pinctrl/sophgo/Kconfig goes here
 #- file drivers/pinctrl/spear/Kconfig goes here
 #- file drivers/pinctrl/sprd/Kconfig goes here
 #- file drivers/pinctrl/starfive/Kconfig goes here
@@ -9865,7 +9923,6 @@ X86_ANDROID_TABLETS all=m
 #-
 #- *** FILE: drivers/pmdomain/amlogic/Kconfig ***
 #-
-MESON_GX_PM_DOMAINS arm64=m
 MESON_EE_PM_DOMAINS arm64=m
 MESON_SECURE_PM_DOMAINS arm64=m
 
@@ -10393,6 +10450,7 @@ RTC_DRV_EM3027 all=m
 RTC_DRV_RV3028 all=m
 RTC_DRV_RV3032 all=m
 RTC_DRV_RV8803 all=m
+RTC_DRV_SD2405AL all=m
 RTC_DRV_SD3078 all=m
 #- SPI RTC drivers
 RTC_DRV_M41T93 all=m
@@ -10953,7 +11011,6 @@ STAGING all=y
 #- file drivers/staging/gdm724x/Kconfig goes here
 #- file drivers/staging/fbtft/Kconfig goes here
 #- file drivers/staging/most/Kconfig goes here
-#- file drivers/staging/ks7010/Kconfig goes here
 #- file drivers/staging/greybus/Kconfig goes here
 #- file drivers/staging/vc04_services/Kconfig goes here
 #- file drivers/staging/axis-fifo/Kconfig goes here
@@ -11071,11 +11128,6 @@ AD9834 all=m
 #-
 AD5933 all=m
 
-#-
-#- *** FILE: drivers/staging/ks7010/Kconfig ***
-#-
-KS7010 all=m
-
 #-
 #- *** FILE: drivers/staging/media/Kconfig ***
 #-
@@ -11321,6 +11373,7 @@ THERMAL all=y
 THERMAL_NETLINK all=y
 THERMAL_STATISTICS all=y
 THERMAL_DEBUGFS all=n
+THERMAL_CORE_TESTING all=m
 THERMAL_EMERGENCY_POWEROFF_DELAY_MS all=0
 THERMAL_OF arm=y arm64=y
 THERMAL_DEFAULT_GOV_STEP_WISE all=y
@@ -12766,6 +12819,7 @@ LOCKD all=m
 LOCKD_V4 all=y
 NFS_ACL_SUPPORT all=m
 NFS_COMMON all=y
+NFS_LOCALIO all=y
 #- file net/sunrpc/Kconfig goes here
 #- file fs/ceph/Kconfig goes here
 #- file fs/smb/Kconfig goes here
@@ -12828,6 +12882,7 @@ BCACHEFS_TESTS all=y
 BCACHEFS_LOCK_TIME_STATS all=n
 BCACHEFS_NO_LATENCY_ACCT all=n
 BCACHEFS_SIX_OPTIMISTIC_SPIN all=y
+BCACHEFS_PATH_TRACEPOINTS all=n
 
 #-
 #- *** FILE: fs/befs/Kconfig ***
@@ -12918,6 +12973,7 @@ EROFS_FS_DEBUG all=n
 EROFS_FS_XATTR all=y
 EROFS_FS_POSIX_ACL all=y
 EROFS_FS_SECURITY all=y
+EROFS_FS_BACKED_BY_FILE all=y
 EROFS_FS_ZIP all=y
 EROFS_FS_ZIP_LZMA all=y
 EROFS_FS_ZIP_DEFLATE all=y
@@ -13297,6 +13353,7 @@ CIFS_DFS_UPCALL all=n
 CIFS_SWN_UPCALL all=y
 CIFS_SMB_DIRECT all=y
 CIFS_FSCACHE all=y
+CIFS_COMPRESSION all=y
 
 #-
 #- *** FILE: fs/smb/server/Kconfig ***
@@ -13472,6 +13529,7 @@ CGROUP_RDMA all=y
 CGROUP_FREEZER all=y
 CGROUP_HUGETLB all=y
 CPUSETS all=y
+CPUSETS_V1 all=n
 PROC_PID_CPUSET all=n
 CGROUP_DEVICE all=y
 CGROUP_CPUACCT all=y
@@ -13628,10 +13686,11 @@ MODULE_SIG_SHA512 all=n
 MODULE_SIG_SHA3_256 all=n
 MODULE_SIG_SHA3_384 all=n
 MODULE_SIG_SHA3_512 all=n
-MODULE_COMPRESS_NONE all=n
+MODULE_COMPRESS all=y
 MODULE_COMPRESS_GZIP all=n
 MODULE_COMPRESS_XZ all=y
 MODULE_COMPRESS_ZSTD all=n
+MODULE_COMPRESS_ALL all=y
 MODULE_DECOMPRESS all=y
 MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS all=n
 MODPROBE_PATH="/sbin/modprobe"
@@ -13946,6 +14005,7 @@ TEST_LIST_SORT all=n
 TEST_MIN_HEAP all=m
 TEST_SORT all=n
 TEST_DIV64 all=m
+TEST_MULDIV64 all=m
 KPROBES_SANITY_TEST all=n
 BACKTRACE_SELF_TEST all=m
 TEST_REF_TRACKER all=m
@@ -14119,7 +14179,6 @@ SPARSEMEM_VMEMMAP all=y
 MEMORY_HOTPLUG all=y
 MEMORY_HOTPLUG_DEFAULT_ONLINE all=y
 MEMORY_HOTREMOVE all=y
-SPLIT_PTLOCK_CPUS all=4
 BALLOON_COMPACTION all=y
 COMPACTION all=y
 PAGE_REPORTING all=y
@@ -14220,6 +14279,7 @@ NET_9P all=m
 NET_9P_FD all=m
 NET_9P_VIRTIO all=m
 NET_9P_XEN all=m
+NET_9P_USBG all=y
 NET_9P_RDMA all=m
 NET_9P_DEBUG all=n
 
@@ -15321,6 +15381,7 @@ STATIC_USERMODEHELPER all=n
 #- file security/safesetid/Kconfig goes here
 #- file security/lockdown/Kconfig goes here
 #- file security/landlock/Kconfig goes here
+#- file security/ipe/Kconfig goes here
 #- file security/integrity/Kconfig goes here
 DEFAULT_SECURITY_SELINUX all=n
 DEFAULT_SECURITY_SMACK all=n
@@ -15394,6 +15455,14 @@ EVM_X509_PATH all="/etc/keys/x509_evm.der"
 IMA all=n
 IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY all=n
 
+#-
+#- *** FILE: security/ipe/Kconfig ***
+#-
+SECURITY_IPE all=y
+IPE_BOOT_POLICY all=""
+IPE_POLICY_SIG_SECONDARY_KEYRING all=y
+IPE_POLICY_SIG_PLATFORM_KEYRING all=y
+
 #-
 #- *** FILE: security/keys/Kconfig ***
 #-
@@ -15557,9 +15626,9 @@ SND_DYNAMIC_MINORS all=y
 SND_MAX_CARDS all=32
 SND_SUPPORT_OLD_API all=y
 SND_VERBOSE_PROCFS all=y
-SND_VERBOSE_PRINTK all=n
 SND_DEBUG all=n
 SND_CTL_INPUT_VALIDATION all=y
+SND_UTIMER all=y
 #- file sound/core/seq/Kconfig goes here
 
 #-
@@ -15844,6 +15913,7 @@ SND_SOC all=m
 #- file sound/soc/xilinx/Kconfig goes here
 #- file sound/soc/xtensa/Kconfig goes here
 #- file sound/soc/codecs/Kconfig goes here
+#- file sound/soc/sdw_utils/Kconfig goes here
 #- file sound/soc/generic/Kconfig goes here
 
 #-
@@ -15887,6 +15957,7 @@ SND_AMD_ASOC_ACP63 all=m
 SND_AMD_ASOC_ACP70 all=m
 SND_SOC_AMD_LEGACY_MACH all=m
 SND_SOC_AMD_SOF_MACH all=m
+SND_SOC_AMD_SOF_SDW_MACH all=m
 
 #-
 #- *** FILE: sound/soc/atmel/Kconfig ***
@@ -16136,6 +16207,7 @@ SND_SOC_ZL38060 all=m
 SND_SOC_LM4857 all=m
 SND_SOC_MAX9759 all=m
 SND_SOC_MT6351 all=m
+SND_SOC_MT6357 all=m
 SND_SOC_MT6358 all=m
 SND_SOC_MT6660 all=m
 SND_SOC_NAU8315 all=m
@@ -16219,16 +16291,6 @@ SND_SOC_INTEL_HASWELL all=m
 SND_SST_ATOM_HIFI2_PLATFORM all=m
 SND_SST_ATOM_HIFI2_PLATFORM_PCI all=m
 SND_SST_ATOM_HIFI2_PLATFORM_ACPI all=m
-SND_SOC_INTEL_SKYLAKE all=m
-SND_SOC_INTEL_SKL all=m
-SND_SOC_INTEL_APL all=m
-SND_SOC_INTEL_KBL all=m
-SND_SOC_INTEL_GLK all=m
-SND_SOC_INTEL_CNL all=m
-SND_SOC_INTEL_CFL all=m
-SND_SOC_INTEL_CML_H all=m
-SND_SOC_INTEL_CML_LP all=m
-SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC all=y
 SND_SOC_INTEL_KEEMBAY arm64=m
 SND_SOC_INTEL_AVS all=m
 #- file sound/soc/intel/avs/boards/Kconfig goes here
@@ -16275,17 +16337,7 @@ SND_SOC_INTEL_BYT_CHT_CX2072X_MACH all=m
 SND_SOC_INTEL_BYT_CHT_DA7213_MACH all=m
 SND_SOC_INTEL_BYT_CHT_ES8316_MACH all=m
 SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH all=m
-SND_SOC_INTEL_SKL_RT286_MACH all=m
-SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH all=m
-SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH all=m
-SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH all=m
-SND_SOC_INTEL_BXT_RT298_MACH all=m
 SND_SOC_INTEL_SOF_WM8804_MACH all=m
-SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH all=m
-SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH all=m
-SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH all=m
-SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH all=m
-SND_SOC_INTEL_KBL_RT5660_MACH all=m
 SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH all=m
 SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH all=m
 SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH all=m
@@ -16373,6 +16425,7 @@ SND_SOC_SOF_AMD_VANGOGH all=m
 SND_SOC_SOF_AMD_REMBRANDT all=m
 SND_SOC_SOF_AMD_SOUNDWIRE all=m
 SND_SOC_SOF_AMD_ACP63 all=m
+SND_SOC_SOF_AMD_ACP70 all=m
 
 #-
 #- *** FILE: sound/soc/sof/imx/Kconfig ***
@@ -16400,6 +16453,7 @@ SND_SOC_SOF_ELKHARTLAKE all=m
 SND_SOC_SOF_ALDERLAKE all=m
 SND_SOC_SOF_METEORLAKE all=m
 SND_SOC_SOF_LUNARLAKE all=m
+SND_SOC_SOF_PANTHERLAKE all=m
 SND_SOC_SOF_HDA_LINK all=y
 SND_SOC_SOF_HDA_AUDIO_CODEC all=y
 SND_SOC_SOF_INTEL_SOUNDWIRE all=m
@@ -16497,6 +16551,37 @@ RD_ZSTD all=y
 #-
 #- *** PROBABLY REMOVED OPTIONS ***
 #-
+I2C_COMPAT all=y
+KEYBOARD_MCS all=m
+KS7010 all=m
+MESON_GX_PM_DOMAINS arm64=m
+MODULE_COMPRESS_NONE all=n
 SND_BCM2708_SOC_HIFIBERRY_DAC arm=m arm64=m
 SND_RPI_SIMPLE_SOUNDCARD arm=m arm64=m
 SND_RPI_WM8804_SOUNDCARD arm=m arm64=m
+SND_SOC_INTEL_APL all=m
+SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH all=m
+SND_SOC_INTEL_BXT_RT298_MACH all=m
+SND_SOC_INTEL_CFL all=m
+SND_SOC_INTEL_CML_H all=m
+SND_SOC_INTEL_CML_LP all=m
+SND_SOC_INTEL_CNL all=m
+SND_SOC_INTEL_GLK all=m
+SND_SOC_INTEL_KBL all=m
+SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH all=m
+SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH all=m
+SND_SOC_INTEL_KBL_RT5660_MACH all=m
+SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH all=m
+SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH all=m
+SND_SOC_INTEL_SKL all=m
+SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH all=m
+SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH all=m
+SND_SOC_INTEL_SKL_RT286_MACH all=m
+SND_SOC_INTEL_SKYLAKE all=m
+SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC all=y
+SND_VERBOSE_PRINTK all=n
+SPLIT_PTLOCK_CPUS all=4
+TOUCHSCREEN_CYTTSP4_CORE all=m
+TOUCHSCREEN_CYTTSP4_I2C all=m
+TOUCHSCREEN_CYTTSP4_SPI all=m
+TOUCHSCREEN_MCS5000 all=m
diff --git a/kernel-x86.config b/kernel-x86.config
index 9f16626c..38fcead8 100644
--- a/kernel-x86.config
+++ b/kernel-x86.config
@@ -77,7 +77,6 @@ AMD_MEM_ENCRYPT x86=y
 NUMA x86_64=y
 AMD_NUMA x86=n
 X86_64_ACPI_NUMA x86_64=y
-NUMA_EMU x86_64=n
 NODES_SHIFT x86_64=6
 X86_PMEM_LEGACY x86=y
 HIGHPTE i386=n
@@ -123,9 +122,18 @@ MITIGATION_IBPB_ENTRY x86_64=y
 MITIGATION_IBRS_ENTRY x86_64=y
 MITIGATION_SRSO x86_64=y
 MITIGATION_SLS x86_64=y
-MITIGATION_GDS_FORCE x86_64=n x86=n
+MITIGATION_GDS x86=y
 MITIGATION_RFDS x86_64=y x86=y
 MITIGATION_SPECTRE_BHI x86=y x86_64=y
+MITIGATION_MDS x86=y
+MITIGATION_TAA x86=y
+MITIGATION_MMIO_STALE_DATA x86=y
+MITIGATION_L1TF x86=y
+MITIGATION_RETBLEED x86=y
+MITIGATION_SPECTRE_V1 x86=y
+MITIGATION_SPECTRE_V2 x86=y
+MITIGATION_SRBDS x86=y
+MITIGATION_SSB x86=y
 #- file kernel/power/Kconfig goes here
 #- file drivers/acpi/Kconfig goes here
 APM i386=m
@@ -266,4 +274,6 @@ DEBUG_HOTPLUG_CPU0 all=n
 KEXEC_JUMP x86=y
 MICROCODE_AMD x86=y
 MICROCODE_INTEL x86=y
+MITIGATION_GDS_FORCE x86_64=n x86=n
+NUMA_EMU x86_64=n
 SPECULATION_MITIGATIONS x86=y
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/5b944d9d13a13e698580a427dfafa8abd945c9a3



More information about the pld-cvs-commit mailing list