[packages/kernel] Initial 6.15.0 update

arekm arekm at pld-linux.org
Mon May 26 11:37:03 CEST 2025


commit 6f1871ad2bab2d6f801e976399f9858f4b024d1c
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Mon May 26 10:35:16 2025 +0200

    Initial 6.15.0 update

 kernel-aufs-make.patch  |  12 +-
 kernel-aufs.patch       | 449 +++++++++++++++++++++++++++---------------------
 kernel-multiarch.config | 197 +++++++++++++++------
 kernel.spec             |  10 +-
 update-source.sh        |   4 +-
 5 files changed, 413 insertions(+), 259 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index 4b005a2c..56631d27 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -51,9 +51,9 @@
 %define		have_drm	0
 %endif
 
-%define		rel		2
-%define		basever		6.14
-%define		postver		.8
+%define		rel		0.1
+%define		basever		6.15
+%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:	05238030095d2be98aac79bfbc58f5d3
+# Source0-md5:	c0f205cc27982a875c519f644a6288c4
 %if "%{postver}" != ".0"
 Patch0:		https://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz
 # Patch0-md5:	1b2dbe1a2dec277570b4361f1d35c940
@@ -635,7 +635,7 @@ find -name '*.pl' -print0 | \
 	scripts/stackdelta
 
 %{__sed} -i -e '1s,/usr/bin/env sh,%{__sh},' \
-	samples/check-exec/run-script-ask.inc
+	samples/check-exec/run-script-ask.sh
 
 %{__sed} -i -e '1s,/usr/bin/env bash,%{__bash},' \
 	scripts/coccicheck \
diff --git a/kernel-aufs-make.patch b/kernel-aufs-make.patch
index eb9473fd..cb6dd78c 100644
--- a/kernel-aufs-make.patch
+++ b/kernel-aufs-make.patch
@@ -1,16 +1,16 @@
---- linux-6.3/fs/aufs/Makefile.orig	2023-05-01 20:26:46.511529296 +0200
-+++ linux-6.3/fs/aufs/Makefile	2023-05-01 20:28:26.829201887 +0200
+--- linux-6.15/fs/aufs/Makefile~	2025-05-26 10:00:26.000000000 +0200
++++ linux-6.15/fs/aufs/Makefile	2025-05-26 10:01:28.093923904 +0200
 @@ -1,10 +1,10 @@
  # SPDX-License-Identifier: GPL-2.0
  
 -include ${src}/magic.mk
-+include ${srctree}/fs/aufs/magic.mk
++include ${srctree}/fs/magic.mk
  ifeq (${CONFIG_AUFS_FS},m)
 -include ${src}/conf.mk
-+include ${srctree}/fs/aufs/conf.mk
++include ${srctree}/fs/conf.mk
  endif
 --include ${src}/priv_def.mk
-+-include ${srctree}/fs/aufs/priv_def.mk
++-include ${srctree}/fs/priv_def.mk
  
+ ccflags-y += ${EXTRA_CFLAGS}
  # cf. include/linux/kernel.h
- # enable pr_debug
diff --git a/kernel-aufs.patch b/kernel-aufs.patch
index 660b404c..5c2de9a6 100644
--- a/kernel-aufs.patch
+++ b/kernel-aufs.patch
@@ -1,11 +1,11 @@
 SPDX-License-Identifier: GPL-2.0
-aufs6.14 kbuild patch
+aufs6.x-rcN kbuild patch
 
 diff --git a/fs/Kconfig b/fs/Kconfig
-index 64d420e3c4758..0873506d6b97d 100644
+index 5b4847bd2fbb5..74a618a3694fb 100644
 --- a/fs/Kconfig
 +++ b/fs/Kconfig
-@@ -340,6 +340,7 @@ source "fs/sysv/Kconfig"
+@@ -340,6 +340,7 @@ source "fs/pstore/Kconfig"
  source "fs/ufs/Kconfig"
  source "fs/erofs/Kconfig"
  source "fs/vboxsf/Kconfig"
@@ -14,22 +14,22 @@ index 64d420e3c4758..0873506d6b97d 100644
  endif # MISC_FILESYSTEMS
  
 diff --git a/fs/Makefile b/fs/Makefile
-index 15df0a923d3ad..7584856689fb3 100644
+index 77fd7f7b5d024..8a7485aad338b 100644
 --- a/fs/Makefile
 +++ b/fs/Makefile
-@@ -129,3 +129,4 @@ obj-$(CONFIG_EROFS_FS)		+= erofs/
+@@ -128,3 +128,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.14 base patch
+aufs6.x-rcN base patch
 
 diff --git a/MAINTAINERS b/MAINTAINERS
-index 00e94bec401e1..fc5f009fdc2b0 100644
+index d48dd6726fe6b..d8e852d7bea92 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -3776,6 +3776,19 @@ S:	Supported
+@@ -3870,6 +3870,19 @@ S:	Supported
  F:	Documentation/dev-tools/autofdo.rst
  F:	scripts/Makefile.autofdo
  
@@ -50,10 +50,10 @@ index 00e94bec401e1..fc5f009fdc2b0 100644
  M:	Greg Kroah-Hartman <gregkh at linuxfoundation.org>
  R:	Dave Ertman <david.m.ertman at intel.com>
 diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index c05fe27a96b64..360a30bda4ec7 100644
+index b8ba7de087539..25337d8591aa3 100644
 --- a/drivers/block/loop.c
 +++ b/drivers/block/loop.c
-@@ -665,6 +665,26 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -617,6 +617,26 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	goto done;
  }
  
@@ -81,10 +81,10 @@ index c05fe27a96b64..360a30bda4ec7 100644
  
  static ssize_t loop_attr_show(struct device *dev, char *page,
 diff --git a/fs/dcache.c b/fs/dcache.c
-index e3634916ffb93..cc6665e8c5e91 100644
+index bd5aa136153ac..f27934816c452 100644
 --- a/fs/dcache.c
 +++ b/fs/dcache.c
-@@ -1251,6 +1251,9 @@ enum d_walk_ret {
+@@ -1268,6 +1268,9 @@ enum d_walk_ret {
  	D_WALK_SKIP,
  };
  
@@ -94,7 +94,7 @@ index e3634916ffb93..cc6665e8c5e91 100644
  /**
   * d_walk - walk the dentry tree
   * @parent:	start of walk
-@@ -1259,7 +1262,7 @@ enum d_walk_ret {
+@@ -1276,7 +1279,7 @@ enum d_walk_ret {
   *
   * The @enter() callbacks are called with d_lock held.
   */
@@ -126,10 +126,10 @@ index 5598e4d574229..90af6a47fbadc 100644
  		return error;
  
 diff --git a/fs/namespace.c b/fs/namespace.c
-index 8f1000f9f3df1..1374f84b05f0c 100644
+index 1b466c54a357d..45e8ebee87f2a 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
-@@ -998,6 +998,12 @@ static inline int check_mnt(struct mount *mnt)
+@@ -1003,6 +1003,12 @@ static inline int check_mnt(struct mount *mnt)
  	return mnt->mnt_ns == current->nsproxy->mnt_ns;
  }
  
@@ -139,14 +139,14 @@ index 8f1000f9f3df1..1374f84b05f0c 100644
 +	return check_mnt(real_mount(mnt));
 +}
 +
- /*
-  * vfsmount lock must be held for write
-  */
+ static inline bool check_anonymous_mnt(struct mount *mnt)
+ {
+ 	u64 seq;
 diff --git a/fs/splice.c b/fs/splice.c
-index 23fa5561b9441..7b0db4b3b485e 100644
+index 4d6df083e0c06..73cd917c821fe 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
-@@ -933,7 +933,7 @@ static int warn_unsupported(struct file *file, const char *op)
+@@ -927,7 +927,7 @@ static int warn_unsupported(struct file *file, const char *op)
  /*
   * Attempt to initiate a splice from pipe to file.
   */
@@ -156,10 +156,10 @@ index 23fa5561b9441..7b0db4b3b485e 100644
  {
  	if (unlikely(!out->f_op->splice_write))
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 2788df98080f8..80443e8d30b77 100644
+index 016b0fe1536e3..fed72def0eb0b 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -1221,6 +1221,7 @@ extern void fasync_free(struct fasync_struct *);
+@@ -1211,6 +1211,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 2788df98080f8..80443e8d30b77 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);
-@@ -2151,6 +2152,7 @@ struct file_operations {
+@@ -2149,6 +2150,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);
@@ -222,10 +222,10 @@ index 9dec4861d09f6..14583d8468640 100644
 +			      loff_t *ppos, size_t len, unsigned int flags);
  #endif
 diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index 4470680f02269..89e8e8b383579 100644
+index 58d78a33ac65b..2dbd6fe56413c 100644
 --- a/kernel/locking/lockdep.c
 +++ b/kernel/locking/lockdep.c
-@@ -220,7 +220,7 @@ unsigned long max_lock_class_idx;
+@@ -223,7 +223,7 @@ unsigned long max_lock_class_idx;
  struct lock_class lock_classes[MAX_LOCKDEP_KEYS];
  DECLARE_BITMAP(lock_classes_in_use, MAX_LOCKDEP_KEYS);
  
@@ -234,7 +234,7 @@ index 4470680f02269..89e8e8b383579 100644
  {
  	unsigned int class_idx = hlock->class_idx;
  
-@@ -241,6 +241,7 @@ static inline struct lock_class *hlock_class(struct held_lock *hlock)
+@@ -244,6 +244,7 @@ static inline struct lock_class *hlock_class(struct held_lock *hlock)
  	 */
  	return lock_classes + class_idx;
  }
@@ -243,13 +243,13 @@ index 4470680f02269..89e8e8b383579 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.14 mmap patch
+aufs6.x-rcN mmap patch
 
 diff --git a/fs/proc/base.c b/fs/proc/base.c
-index cd89e956c3224..4c145b7df4428 100644
+index b0d4e1908b22f..312a7d32aa9c0 100644
 --- a/fs/proc/base.c
 +++ b/fs/proc/base.c
-@@ -2273,7 +2273,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) {
@@ -275,7 +275,7 @@ index c6e7ebc637562..d7ccfd9097646 100644
  		ino = inode->i_ino;
  	}
 diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index f02cd362309a0..885ca0d7de86a 100644
+index 994cde10e3f4d..de38c04f752e7 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,
@@ -298,7 +298,7 @@ index f02cd362309a0..885ca0d7de86a 100644
  
  		dev = inode->i_sb->s_dev;
  		ino = inode->i_ino;
-@@ -3008,7 +3010,7 @@ static int show_numa_map(struct seq_file *m, void *v)
+@@ -3034,7 +3036,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;
@@ -324,14 +324,23 @@ index bce6745330003..b12b5a75c799c 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 1f80baddacc59..f121882609da8 100644
+index bf55206935c46..1ded10c638970 100644
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
-@@ -2487,6 +2487,43 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
+@@ -2578,6 +2578,54 @@ 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);
  
 +#if 1 /* IS_ENABLED(CONFIG_AUFS_FS) */
++static inline struct file *vma_prfile_value(struct vm_area_struct *vma)
++{
++	return vma->vm_prfile;
++}
++static inline void vma_prfile_set(struct vm_area_struct *vma, struct file *pr)
++{
++	vma->vm_prfile = pr;
++}
++
 +extern void vma_do_file_update_time(struct vm_area_struct *, const char[], int);
 +extern struct file *vma_do_pr_or_file(struct vm_area_struct *, const char[],
 +				      int);
@@ -355,6 +364,8 @@ index 1f80baddacc59..f121882609da8 100644
 +#endif /* !CONFIG_MMU */
 +
 +#else
++#define vma_prfile_value(vma)	(NULL)
++#define vma_prfile_set(vma, pr)	/* empty */
 +
 +#define vma_file_update_time(vma)	file_update_time((vma)->vm_file)
 +#define vma_pr_or_file(vma)		(vma)->vm_file
@@ -372,10 +383,10 @@ index 1f80baddacc59..f121882609da8 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 0234f14f2aa6b..e99a95ea8ea17 100644
+index 56d07edd01f91..d5a8bd5e15ce4 100644
 --- a/include/linux/mm_types.h
 +++ b/include/linux/mm_types.h
-@@ -586,6 +586,9 @@ struct vm_region {
+@@ -682,6 +682,9 @@ struct vm_region {
  	unsigned long	vm_top;		/* region allocated to here */
  	unsigned long	vm_pgoff;	/* the offset in vm_file corresponding to vm_start */
  	struct file	*vm_file;	/* the backing file or NULL */
@@ -385,7 +396,7 @@ index 0234f14f2aa6b..e99a95ea8ea17 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
-@@ -761,6 +764,9 @@ struct vm_area_struct {
+@@ -838,6 +841,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). */
@@ -394,12 +405,20 @@ index 0234f14f2aa6b..e99a95ea8ea17 100644
 +#endif
  	void * vm_private_data;		/* was vm_pte (shared mem) */
  
- #ifdef CONFIG_ANON_VMA_NAME
+ #ifdef CONFIG_SWAP
 diff --git a/kernel/fork.c b/kernel/fork.c
-index 735405a9c5f32..8278eb9102e93 100644
+index 168681fc4b25a..cf8e0f7eec280 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -732,7 +732,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
+@@ -457,6 +457,7 @@ static void vm_area_init_from(const struct vm_area_struct *src,
+ 	dest->anon_vma = src->anon_vma;
+ 	dest->vm_pgoff = src->vm_pgoff;
+ 	dest->vm_file = src->vm_file;
++	vma_prfile_set(dest, vma_prfile_value((struct vm_area_struct *)src));
+ 	dest->vm_private_data = src->vm_private_data;
+ 	vm_flags_init(dest, src->vm_flags);
+ 	memcpy(&dest->vm_page_prot, &src->vm_page_prot,
+@@ -711,7 +712,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
  		if (file) {
  			struct address_space *mapping = file->f_mapping;
  
@@ -409,19 +428,19 @@ index 735405a9c5f32..8278eb9102e93 100644
  			if (vma_is_shared_maywrite(tmp))
  				mapping_allow_writable(mapping);
 diff --git a/mm/Makefile b/mm/Makefile
-index 850386a67b3e0..b33569fb88d22 100644
+index e7f6bbf8ae5f7..aba3d710bc821 100644
 --- a/mm/Makefile
 +++ b/mm/Makefile
-@@ -147,3 +147,4 @@ obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o
+@@ -148,3 +148,4 @@ obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o
  obj-$(CONFIG_EXECMEM) += execmem.o
  obj-$(CONFIG_TMPFS_QUOTA) += shmem_quota.o
  obj-$(CONFIG_PT_RECLAIM) += pt_reclaim.o
 +obj-y += prfile.o
 diff --git a/mm/filemap.c b/mm/filemap.c
-index e9404290f2c63..8319d0ffa262c 100644
+index 7b90cbeb4a1ad..eff54887b4041 100644
 --- a/mm/filemap.c
 +++ b/mm/filemap.c
-@@ -3766,7 +3766,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
+@@ -3767,7 +3767,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);
@@ -431,7 +450,7 @@ index e9404290f2c63..8319d0ffa262c 100644
  	if (folio->mapping != mapping) {
  		folio_unlock(folio);
 diff --git a/mm/mmap.c b/mm/mmap.c
-index cda01071c7b1f..a143a770a44d0 100644
+index bd210aaf7ebd7..a1af5fb2e4554 100644
 --- a/mm/mmap.c
 +++ b/mm/mmap.c
 @@ -1098,6 +1098,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
@@ -442,16 +461,14 @@ index cda01071c7b1f..a143a770a44d0 100644
  
  	pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/mm/remap_file_pages.rst.\n",
  		     current->comm, current->pid);
-@@ -1140,14 +1141,18 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1140,14 +1141,16 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
  
  	/* 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;
-+#if 1 /* IS_ENABLED(CONFIG_AUFS_FS) */
-+	prfile = vma->vm_prfile;
-+#endif
++	prfile = vma_prfile_value(vma);
  
  	mmap_read_unlock(mm);
  
@@ -463,7 +480,7 @@ index cda01071c7b1f..a143a770a44d0 100644
  		return ret;
  	}
  
-@@ -1155,7 +1160,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1155,7 +1158,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)) {
@@ -472,7 +489,7 @@ index cda01071c7b1f..a143a770a44d0 100644
  		return -EINTR;
  	}
  
-@@ -1197,9 +1202,27 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1197,9 +1200,27 @@ 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);
@@ -481,8 +498,8 @@ index cda01071c7b1f..a143a770a44d0 100644
 +		struct vm_area_struct *new_vma;
 +
 +		new_vma = find_vma(mm, ret);
-+		if (!new_vma->vm_prfile)
-+			new_vma->vm_prfile = prfile;
++		if (!vma_prfile_value(new_vma))
++			vma_prfile_set(new_vma, prfile);
 +		if (prfile)
 +			get_file(prfile);
 +	}
@@ -501,10 +518,10 @@ index cda01071c7b1f..a143a770a44d0 100644
  		mm_populate(ret, populate);
  	if (!IS_ERR_VALUE(ret))
 diff --git a/mm/nommu.c b/mm/nommu.c
-index 9cb6e99215e2b..5add36afa9786 100644
+index 617e7ba8022f5..f7169932a3062 100644
 --- a/mm/nommu.c
 +++ b/mm/nommu.c
-@@ -512,7 +512,7 @@ static void __put_nommu_region(struct vm_region *region)
+@@ -519,7 +519,7 @@ static void __put_nommu_region(struct vm_region *region)
  		up_write(&nommu_region_sem);
  
  		if (region->vm_file)
@@ -513,7 +530,7 @@ index 9cb6e99215e2b..5add36afa9786 100644
  
  		/* IO memory and memory shared directly out of the pagecache
  		 * from ramfs/tmpfs mustn't be released here */
-@@ -591,7 +591,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma)
+@@ -598,7 +598,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma)
  {
  	vma_close(vma);
  	if (vma->vm_file)
@@ -522,7 +539,7 @@ index 9cb6e99215e2b..5add36afa9786 100644
  	put_nommu_region(vma->vm_region);
  	vm_area_free(vma);
  }
-@@ -1123,7 +1123,7 @@ unsigned long do_mmap(struct file *file,
+@@ -1130,7 +1130,7 @@ unsigned long do_mmap(struct file *file,
  					goto error_just_free;
  				}
  			}
@@ -531,7 +548,7 @@ index 9cb6e99215e2b..5add36afa9786 100644
  			kmem_cache_free(vm_region_jar, region);
  			region = pregion;
  			result = start;
-@@ -1209,10 +1209,10 @@ unsigned long do_mmap(struct file *file,
+@@ -1216,10 +1216,10 @@ unsigned long do_mmap(struct file *file,
  error:
  	vma_iter_free(&vmi);
  	if (region->vm_file)
@@ -637,10 +654,10 @@ index 0000000000000..b034d160a18f4
 +}
 +#endif /* !CONFIG_MMU */
 diff --git a/mm/vma.c b/mm/vma.c
-index 71ca012c616c9..d5b07f2feb1fb 100644
+index 839d12f02c885..a4076eb9d1c21 100644
 --- a/mm/vma.c
 +++ b/mm/vma.c
-@@ -331,7 +331,7 @@ static void vma_complete(struct vma_prepare *vp, struct vma_iterator *vmi,
+@@ -345,7 +345,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);
@@ -649,16 +666,16 @@ index 71ca012c616c9..d5b07f2feb1fb 100644
  		}
  		if (vp->remove->anon_vma)
  			anon_vma_merge(vp->vma, vp->remove);
-@@ -411,7 +411,7 @@ void remove_vma(struct vm_area_struct *vma, bool unreachable)
+@@ -425,7 +425,7 @@ void remove_vma(struct vm_area_struct *vma)
  	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);
-@@ -488,7 +488,7 @@ __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma,
+ 	vm_area_free(vma);
+ }
+@@ -499,7 +499,7 @@ __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma,
  		goto out_free_mpol;
  
  	if (new->vm_file)
@@ -667,7 +684,7 @@ index 71ca012c616c9..d5b07f2feb1fb 100644
  
  	if (new->vm_ops && new->vm_ops->open)
  		new->vm_ops->open(new);
-@@ -1767,7 +1767,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -1824,7 +1824,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)
@@ -676,7 +693,7 @@ index 71ca012c616c9..d5b07f2feb1fb 100644
  		if (new_vma->vm_ops && new_vma->vm_ops->open)
  			new_vma->vm_ops->open(new_vma);
  		if (vma_link(mm, new_vma))
-@@ -1780,7 +1780,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -1837,7 +1837,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
  	vma_close(new_vma);
  
  	if (new_vma->vm_file)
@@ -686,13 +703,13 @@ index 71ca012c616c9..d5b07f2feb1fb 100644
  	unlink_anon_vmas(new_vma);
  out_free_mempol:
 SPDX-License-Identifier: GPL-2.0
-aufs6.14 standalone patch
+aufs6.x-rcN standalone patch
 
 diff --git a/fs/dcache.c b/fs/dcache.c
-index cc6665e8c5e91..f7bbc4fcc53ce 100644
+index f27934816c452..d711c216bd070 100644
 --- a/fs/dcache.c
 +++ b/fs/dcache.c
-@@ -1361,6 +1361,7 @@ void d_walk(struct dentry *parent, void *data,
+@@ -1378,6 +1378,7 @@ void d_walk(struct dentry *parent, void *data,
  	seq = 1;
  	goto again;
  }
@@ -700,7 +717,7 @@ index cc6665e8c5e91..f7bbc4fcc53ce 100644
  
  struct check_mount {
  	struct vfsmount *mnt;
-@@ -2922,6 +2923,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
+@@ -2894,6 +2895,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
  
  	write_sequnlock(&rename_lock);
  }
@@ -709,7 +726,7 @@ index cc6665e8c5e91..f7bbc4fcc53ce 100644
  /**
   * d_ancestor - search for an ancestor
 diff --git a/fs/exec.c b/fs/exec.c
-index 506cd411f4ac2..e0e6e301a4481 100644
+index 8e4ea5f1e64c6..fcdda54dd4c9e 100644
 --- a/fs/exec.c
 +++ b/fs/exec.c
 @@ -114,6 +114,7 @@ bool path_noexec(const struct path *path)
@@ -733,10 +750,10 @@ index 90af6a47fbadc..7d4eaaff13bc9 100644
  /*
   * 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 5c00dc38558da..b6b56d522e6f9 100644
+index c04ed94cdc4b2..2b464937aaf19 100644
 --- a/fs/file_table.c
 +++ b/fs/file_table.c
-@@ -252,6 +252,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
+@@ -253,6 +253,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
  	}
  	return ERR_PTR(-ENFILE);
  }
@@ -745,18 +762,18 @@ index 5c00dc38558da..b6b56d522e6f9 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 1374f84b05f0c..3bea84be70be5 100644
+index 45e8ebee87f2a..c72ef12585d32 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
-@@ -1003,6 +1003,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
+@@ -1008,6 +1008,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
  {
  	return check_mnt(real_mount(mnt));
  }
 +EXPORT_SYMBOL_GPL(is_current_mnt_ns);
  
- /*
-  * vfsmount lock must be held for write
-@@ -2248,6 +2249,7 @@ struct vfsmount *collect_mounts(const struct path *path)
+ static inline bool check_anonymous_mnt(struct mount *mnt)
+ {
+@@ -2346,6 +2347,7 @@ struct vfsmount *collect_mounts(const struct path *path)
  		return ERR_CAST(tree);
  	return &tree->mnt;
  }
@@ -764,7 +781,7 @@ index 1374f84b05f0c..3bea84be70be5 100644
  
  static void free_mnt_ns(struct mnt_namespace *);
  static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *, bool);
-@@ -2278,6 +2280,7 @@ void drop_collected_mounts(struct vfsmount *mnt)
+@@ -2429,6 +2431,7 @@ void drop_collected_mounts(struct vfsmount *mnt)
  	unlock_mount_hash();
  	namespace_unlock();
  }
@@ -772,7 +789,7 @@ index 1374f84b05f0c..3bea84be70be5 100644
  
  bool has_locked_children(struct mount *mnt, struct dentry *dentry)
  {
-@@ -2349,6 +2352,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+@@ -2531,6 +2534,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
  	}
  	return 0;
  }
@@ -781,10 +798,10 @@ index 1374f84b05f0c..3bea84be70be5 100644
  static void lock_mnt_tree(struct mount *mnt)
  {
 diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
-index fae1b6d397ea0..006e817268835 100644
+index e2b4f17a48bb7..7a411ea72cea4 100644
 --- a/fs/notify/fsnotify.c
 +++ b/fs/notify/fsnotify.c
-@@ -220,6 +220,7 @@ int fsnotify_pre_content(const struct path *path, const loff_t *ppos,
+@@ -225,6 +225,7 @@ int fsnotify_pre_content(const struct path *path, const loff_t *ppos,
  	return fsnotify_parent(path->dentry, FS_PRE_ACCESS, &range,
  			       FSNOTIFY_EVENT_FILE_RANGE);
  }
@@ -805,7 +822,7 @@ index 18446b7b0d495..09138e0b8a6a5 100644
  /*
   * Drop a reference to a group.  Free it if it's through.
 diff --git a/fs/open.c b/fs/open.c
-index 1be20de9f283a..7a8463b5a6fd5 100644
+index a9063cca99118..e0bfa20a14e9f 100644
 --- a/fs/open.c
 +++ b/fs/open.c
 @@ -66,6 +66,7 @@ int do_truncate(struct mnt_idmap *idmap, struct dentry *dentry,
@@ -814,13 +831,13 @@ index 1be20de9f283a..7a8463b5a6fd5 100644
  }
 +EXPORT_SYMBOL_GPL(do_truncate);
  
- long vfs_truncate(const struct path *path, loff_t length)
+ int vfs_truncate(const struct path *path, loff_t length)
  {
 diff --git a/fs/read_write.c b/fs/read_write.c
-index a6133241dfb8c..5e095d512e359 100644
+index bb0ed26a0b3ae..2fe0b1f9b42e5 100644
 --- a/fs/read_write.c
 +++ b/fs/read_write.c
-@@ -572,6 +572,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
+@@ -577,6 +577,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
  	inc_syscr(current);
  	return ret;
  }
@@ -828,7 +845,7 @@ index a6133241dfb8c..5e095d512e359 100644
  
  static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
  {
-@@ -687,6 +688,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_
+@@ -692,6 +693,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_
  	file_end_write(file);
  	return ret;
  }
@@ -837,10 +854,10 @@ index a6133241dfb8c..5e095d512e359 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 7b0db4b3b485e..0d4845b98b842 100644
+index 73cd917c821fe..eb7b4d93a3523 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,
+@@ -934,6 +934,7 @@ ssize_t do_splice_from(struct pipe_inode_info *pipe, struct file *out,
  		return warn_unsupported(out, "write");
  	return out->f_op->splice_write(pipe, out, ppos, len, flags);
  }
@@ -849,7 +866,7 @@ index 7b0db4b3b485e..0d4845b98b842 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 02bee149ad967..71fb7d49a9c2b 100644
+index 8ec5b0204bfdc..29b754a861fc3 100644
 --- a/fs/xattr.c
 +++ b/fs/xattr.c
 @@ -405,6 +405,7 @@ vfs_getxattr_alloc(struct mnt_idmap *idmap, struct dentry *dentry,
@@ -861,10 +878,10 @@ index 02bee149ad967..71fb7d49a9c2b 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 89e8e8b383579..392ab435e888f 100644
+index 2dbd6fe56413c..0eba3fe81a0a5 100644
 --- a/kernel/locking/lockdep.c
 +++ b/kernel/locking/lockdep.c
-@@ -241,6 +241,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock)
+@@ -244,6 +244,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock)
  	 */
  	return lock_classes + class_idx;
  }
@@ -882,7 +899,7 @@ index d1efec571a4a4..eed18cc26c370 100644
  }
 +EXPORT_SYMBOL_GPL(task_work_run);
 diff --git a/security/security.c b/security/security.c
-index 143561ebc3e89..75c88da196484 100644
+index fb57e8fddd911..bb46cbe40f6ae 100644
 --- a/security/security.c
 +++ b/security/security.c
 @@ -1948,6 +1948,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
@@ -4786,8 +4803,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	2025-05-05 22:39:07.819973268 +0200
-@@ -0,0 +1,1459 @@
++++ linux/fs/aufs/cpup.c	2025-05-26 10:00:00.856622052 +0200
+@@ -0,0 +1,1466 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -5442,7 +5459,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +	const unsigned char do_dt = !!au_ftest_cpup(cpg->flags, DTIME);
 +	struct au_dtime dt;
 +	struct path h_path;
-+	struct dentry *h_src, *h_dst, *h_parent;
++	struct dentry *h_src, *h_dst, *h_parent, *ret;
 +	struct inode *h_inode, *h_dir;
 +	struct super_block *sb;
 +
@@ -5481,9 +5498,16 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +		break;
 +	case S_IFDIR:
 +		isdir = 1;
-+		err = vfsub_mkdir(h_dir, &h_path, mode);
-+		if (!err)
++		ret = vfsub_mkdir(h_dir, &h_path, mode);
++		if (IS_ERR(ret))
++			err = PTR_ERR(ret);
++		else {
++			if (ret && ret != h_path.dentry) {
++				h_path.dentry = dget(ret);
++				au_set_h_dptr(cpg->dentry, cpg->bdst, ret);
++			}
 +			err = au_do_cpup_dir(cpg, dst_parent, h_dir, &h_path);
++		}
 +		break;
 +	case S_IFLNK:
 +		err = au_do_cpup_symlink(&h_path, h_src, h_dir);
@@ -6354,7 +6378,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	2025-05-05 22:37:45.056639938 +0200
++++ linux/fs/aufs/dbgaufs.c	2025-05-18 21:20:02.399971589 +0200
 @@ -0,0 +1,525 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -7994,7 +8018,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	2025-05-05 22:37:45.059973271 +0200
++++ linux/fs/aufs/dentry.c	2025-05-18 21:20:02.399971589 +0200
 @@ -0,0 +1,1228 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -19948,7 +19972,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	2025-05-05 22:39:07.819973268 +0200
++++ linux/fs/aufs/inode.h	2025-05-26 10:00:00.859955385 +0200
 @@ -0,0 +1,727 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -20200,8 +20224,8 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 +		 struct file *file, umode_t mode);
 +int aufs_link(struct dentry *src_dentry, struct inode *dir,
 +	      struct dentry *dentry);
-+int aufs_mkdir(struct mnt_idmap *idmap, struct inode *dir,
-+	       struct dentry *dentry, umode_t mode);
++struct dentry *aufs_mkdir(struct mnt_idmap *idmap, struct inode *dir,
++			  struct dentry *dentry, umode_t mode);
 +
 +/* i_op_del.c */
 +int au_wr_dir_need_wh(struct dentry *dentry, int isdir, aufs_bindex_t *bcpup);
@@ -20903,8 +20927,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	2025-05-05 22:39:07.819973268 +0200
-@@ -0,0 +1,971 @@
++++ linux/fs/aufs/i_op_add.c	2025-05-26 10:00:00.859955385 +0200
+@@ -0,0 +1,979 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -21768,14 +21792,14 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +	return err;
 +}
 +
-+int aufs_mkdir(struct mnt_idmap *idmap, struct inode *dir,
-+	       struct dentry *dentry, umode_t mode)
++struct dentry *aufs_mkdir(struct mnt_idmap *idmap, struct inode *dir,
++			  struct dentry *dentry, umode_t mode)
 +{
 +	int err, rerr;
 +	aufs_bindex_t bindex;
 +	unsigned char diropq;
 +	struct path h_path;
-+	struct dentry *wh_dentry, *parent, *opq_dentry;
++	struct dentry *wh_dentry, *parent, *opq_dentry, *ret;
 +	struct inode *h_inode;
 +	struct super_block *sb;
 +	struct {
@@ -21789,15 +21813,17 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +
 +	IMustLock(dir);
 +
-+	err = -ENOMEM;
++	ret = ERR_PTR(-ENOMEM);
 +	a = kmalloc(sizeof(*a), GFP_NOFS);
 +	if (unlikely(!a))
 +		goto out;
 +
 +	err = aufs_read_lock(dentry, AuLock_DW | AuLock_GEN);
++	ret = ERR_PTR(err);
 +	if (unlikely(err))
 +		goto out_free;
 +	err = au_d_may_add(dentry);
++	ret = ERR_PTR(err);
 +	if (unlikely(err))
 +		goto out_unlock;
 +
@@ -21805,7 +21831,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +	di_write_lock_parent(parent);
 +	wh_dentry = lock_hdir_lkup_wh(dentry, &a->dt, /*src_dentry*/NULL,
 +				      &a->pin, &wr_dir_args);
-+	err = PTR_ERR(wh_dentry);
++	ret = wh_dentry;
 +	if (IS_ERR(wh_dentry))
 +		goto out_parent;
 +
@@ -21813,9 +21839,13 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +	bindex = au_dbtop(dentry);
 +	h_path.dentry = au_h_dptr(dentry, bindex);
 +	h_path.mnt = au_sbr_mnt(sb, bindex);
-+	err = vfsub_mkdir(au_pinned_h_dir(&a->pin), &h_path, mode);
-+	if (unlikely(err))
++	ret = vfsub_mkdir(au_pinned_h_dir(&a->pin), &h_path, mode);
++	if (IS_ERR(ret))
 +		goto out_unpin;
++	if (ret && ret != h_path.dentry) {
++		au_set_h_dptr(dentry, bindex, dget(ret));
++		h_path.dentry = ret;
++	}
 +
 +	/* make the dir opaque */
 +	diropq = 0;
@@ -21825,14 +21855,16 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +		inode_lock_nested(h_inode, AuLsc_I_CHILD);
 +		opq_dentry = au_diropq_create(dentry, bindex);
 +		inode_unlock(h_inode);
-+		err = PTR_ERR(opq_dentry);
-+		if (IS_ERR(opq_dentry))
++		if (IS_ERR(opq_dentry)) {
++			ret = opq_dentry;
 +			goto out_dir;
++		}
 +		dput(opq_dentry);
 +		diropq = 1;
 +	}
 +
 +	err = epilog(dir, bindex, wh_dentry, dentry);
++	ret = ERR_PTR(err); /* NULL or error */
 +	if (!err) {
 +		vfsub_inc_nlink(dir);
 +		goto out_unpin; /* success */
@@ -21847,7 +21879,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +		if (rerr) {
 +			AuIOErr("%pd reverting diropq failed(%d, %d)\n",
 +				dentry, err, rerr);
-+			err = -EIO;
++			ret = ERR_PTR(-EIO);
 +		}
 +	}
 +
@@ -21857,7 +21889,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +	if (rerr) {
 +		AuIOErr("%pd reverting dir failed(%d, %d)\n",
 +			dentry, err, rerr);
-+		err = -EIO;
++		ret = ERR_PTR(-EIO);
 +	}
 +	au_dtime_revert(&a->dt);
 +out_unpin:
@@ -21866,7 +21898,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +out_parent:
 +	di_write_unlock(parent);
 +out_unlock:
-+	if (unlikely(err)) {
++	if (IS_ERR(ret)) {
 +		au_update_dbtop(dentry);
 +		d_drop(dentry);
 +	}
@@ -21874,11 +21906,11 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +out_free:
 +	au_kfree_rcu(a);
 +out:
-+	return err;
++	return ret;
 +}
 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	2025-05-05 22:37:45.059973271 +0200
++++ linux/fs/aufs/i_op.c	2025-05-18 21:20:02.399971589 +0200
 @@ -0,0 +1,1522 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -25840,8 +25872,8 @@ 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	2025-05-05 22:39:07.819973268 +0200
-@@ -0,0 +1,46 @@
++++ linux/fs/aufs/Makefile	2025-05-26 10:00:00.856622052 +0200
+@@ -0,0 +1,47 @@
 +# SPDX-License-Identifier: GPL-2.0
 +
 +include ${src}/magic.mk
@@ -25850,6 +25882,7 @@ diff -urN /usr/share/empty/fs/aufs/Makefile linux/fs/aufs/Makefile
 +endif
 +-include ${src}/priv_def.mk
 +
++ccflags-y += ${EXTRA_CFLAGS}
 +# cf. include/linux/kernel.h
 +# enable pr_debug
 +ccflags-y += -DDEBUG
@@ -30033,7 +30066,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	2025-05-05 22:37:45.059973271 +0200
++++ linux/fs/aufs/super.c	2025-05-18 21:20:02.399971589 +0200
 @@ -0,0 +1,872 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -33174,8 +33207,8 @@ 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	2025-05-05 22:39:07.823306601 +0200
-@@ -0,0 +1,964 @@
++++ linux/fs/aufs/vfsub.c	2025-05-26 10:00:00.859955385 +0200
+@@ -0,0 +1,971 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -33680,11 +33713,12 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
 +	return err;
 +}
 +
-+int vfsub_mkdir(struct inode *dir, struct path *path, int mode)
++struct dentry *vfsub_mkdir(struct inode *dir, struct path *path, int mode)
 +{
-+	int err;
-+	struct dentry *d;
++	int err, did;
++	struct dentry *d, *ret;
 +	struct mnt_idmap *idmap;
++	struct path tmp;
 +
 +	IMustLock(dir);
 +
@@ -33692,27 +33726,32 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
 +	path->dentry = d->d_parent;
 +	err = security_path_mkdir(path, d, mode);
 +	path->dentry = d;
++	ret = ERR_PTR(err);
 +	if (unlikely(err))
 +		goto out;
 +	idmap = mnt_idmap(path->mnt);
 +
++	/* vfs_mkdir() calls dput() on error */
++	dget(path->dentry);
 +	lockdep_off();
-+	err = vfs_mkdir(idmap, dir, path->dentry, mode);
++	ret = vfs_mkdir(idmap, dir, path->dentry, mode);
 +	lockdep_on();
-+	if (!err) {
-+		struct path tmp = *path;
-+		int did;
++	if (IS_ERR(ret))
++		goto out;
++	dput(path->dentry);
 +
-+		vfsub_update_h_iattr(&tmp, &did);
-+		if (did) {
-+			tmp.dentry = path->dentry->d_parent;
-+			vfsub_update_h_iattr(&tmp, /*did*/NULL);
-+		}
-+		/*ignore*/
++	tmp = *path;
++	if (ret)
++		tmp.dentry = ret;
++	vfsub_update_h_iattr(&tmp, &did);
++	if (did) {
++		tmp.dentry = tmp.dentry->d_parent;
++		vfsub_update_h_iattr(&tmp, /*did*/NULL);
 +	}
++	/*ignore*/
 +
 +out:
-+	return err;
++	return ret;
 +}
 +
 +int vfsub_rmdir(struct inode *dir, struct path *path)
@@ -33919,7 +33958,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
 +/* ---------------------------------------------------------------------- */
 +
 +struct au_vfsub_mkdir_args {
-+	int *errp;
++	struct dentry **errp;
 +	struct inode *dir;
 +	struct path *path;
 +	int mode;
@@ -33931,30 +33970,31 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
 +	*a->errp = vfsub_mkdir(a->dir, a->path, a->mode);
 +}
 +
-+int vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode)
++struct dentry *vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode)
 +{
-+	int err, do_sio, wkq_err;
++	int err, do_sio;
 +	struct mnt_idmap *idmap;
++	struct dentry *ret;
 +
 +	idmap = mnt_idmap(path->mnt);
 +	do_sio = au_test_h_perm_sio(idmap, dir, MAY_EXEC | MAY_WRITE);
 +	if (!do_sio) {
 +		lockdep_off();
-+		err = vfsub_mkdir(dir, path, mode);
++		ret = vfsub_mkdir(dir, path, mode);
 +		lockdep_on();
 +	} else {
 +		struct au_vfsub_mkdir_args args = {
-+			.errp	= &err,
++			.errp	= &ret,
 +			.dir	= dir,
 +			.path	= path,
 +			.mode	= mode
 +		};
-+		wkq_err = au_wkq_wait(au_call_vfsub_mkdir, &args);
-+		if (unlikely(wkq_err))
-+			err = wkq_err;
++		err = au_wkq_wait(au_call_vfsub_mkdir, &args);
++		if (unlikely(err))
++			ret = ERR_PTR(err);
 +	}
 +
-+	return err;
++	return ret;
 +}
 +
 +struct au_vfsub_rmdir_args {
@@ -34142,7 +34182,7 @@ 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	2025-05-05 22:39:07.823306601 +0200
++++ linux/fs/aufs/vfsub.h	2025-05-26 10:00:00.859955385 +0200
 @@ -0,0 +1,441 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -34365,7 +34405,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
 +int vfsub_rename(struct inode *src_hdir, struct dentry *src_dentry,
 +		 struct inode *hdir, struct path *path,
 +		 struct inode **delegated_inode, unsigned int flags);
-+int vfsub_mkdir(struct inode *dir, struct path *path, int mode);
++struct dentry *vfsub_mkdir(struct inode *dir, struct path *path, int mode);
 +int vfsub_rmdir(struct inode *dir, struct path *path);
 +
 +/* ---------------------------------------------------------------------- */
@@ -34510,7 +34550,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
 +
 +/* ---------------------------------------------------------------------- */
 +
-+int vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode);
++struct dentry *vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode);
 +int vfsub_sio_rmdir(struct inode *dir, struct path *path);
 +int vfsub_sio_notify_change(struct path *path, struct iattr *ia,
 +			    struct inode **delegated_inode);
@@ -34587,8 +34627,8 @@ 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	2025-05-05 22:39:07.823306601 +0200
-@@ -0,0 +1,830 @@
++++ linux/fs/aufs/wbr_policy.c	2025-05-26 10:00:00.859955385 +0200
+@@ -0,0 +1,835 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -34701,7 +34741,7 @@ diff -urN /usr/share/empty/fs/aufs/wbr_policy.c linux/fs/aufs/wbr_policy.c
 +	int err, rerr;
 +	aufs_bindex_t bopq, btop;
 +	struct path h_path;
-+	struct dentry *parent;
++	struct dentry *parent, *ret;
 +	struct inode *h_dir, *h_inode, *inode, *dir;
 +	unsigned int *flags = arg;
 +
@@ -34718,9 +34758,14 @@ diff -urN /usr/share/empty/fs/aufs/wbr_policy.c linux/fs/aufs/wbr_policy.c
 +		goto out;
 +	h_path.dentry = au_h_dptr(dentry, bdst);
 +	h_path.mnt = au_sbr_mnt(dentry->d_sb, bdst);
-+	err = vfsub_sio_mkdir(au_h_iptr(dir, bdst), &h_path, 0755);
-+	if (unlikely(err))
++	ret = vfsub_sio_mkdir(au_h_iptr(dir, bdst), &h_path, 0755);
++	if (IS_ERR(ret)) {
++		err = PTR_ERR(ret);
 +		goto out_put;
++	} else if (ret && ret != h_path.dentry) {
++		h_path.dentry = dget(ret);
++		au_set_h_dptr(dentry, bdst, ret);
++	}
 +	au_fset_cpdown(*flags, MADE_DIR);
 +
 +	bopq = au_dbdiropq(dentry);
@@ -35421,8 +35466,8 @@ 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	2025-05-05 22:39:07.823306601 +0200
-@@ -0,0 +1,1072 @@
++++ linux/fs/aufs/whout.c	2025-05-26 10:00:00.859955385 +0200
+@@ -0,0 +1,1096 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -35742,6 +35787,7 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 +static int au_whdir(struct inode *h_dir, struct path *path)
 +{
 +	int err;
++	struct dentry *ret;
 +
 +	err = -EEXIST;
 +	if (d_is_negative(path->dentry)) {
@@ -35749,7 +35795,14 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 +
 +		if (au_test_nfs(path->dentry->d_sb))
 +			mode |= 0111;
-+		err = vfsub_mkdir(h_dir, path, mode);
++		ret = vfsub_mkdir(h_dir, path, mode);
++		if (IS_ERR(ret))
++			err = PTR_ERR(ret);
++		else {
++			err = 0;
++			if (ret && ret != path->dentry)
++				path->dentry = ret;
++		}
 +	} else if (d_is_dir(path->dentry))
 +		err = 0;
 +	else
@@ -35801,6 +35854,10 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 +		err = au_whdir(h_dir, h_path);
 +		if (unlikely(err))
 +			goto out;
++		else if (h_path->dentry != base[AuBrWh_PLINK].dentry) {
++			dput(base[AuBrWh_PLINK].dentry);
++			base[AuBrWh_PLINK].dentry = dget(h_path->dentry);
++		}
 +		wbr->wbr_plink = dget(base[AuBrWh_PLINK].dentry);
 +	} else
 +		au_wh_clean(h_dir, h_path, /*isdir*/1);
@@ -35808,6 +35865,10 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 +	err = au_whdir(h_dir, h_path);
 +	if (unlikely(err))
 +		goto out;
++	else if (h_path->dentry != base[AuBrWh_ORPH].dentry) {
++		dput(base[AuBrWh_ORPH].dentry);
++		base[AuBrWh_ORPH].dentry = dget(h_path->dentry);
++	}
 +	wbr->wbr_orph = dget(base[AuBrWh_ORPH].dentry);
 +
 +out:
@@ -35857,6 +35918,10 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 +		err = au_whdir(h_dir, h_path);
 +		if (unlikely(err))
 +			goto out;
++		else if (h_path->dentry != base[AuBrWh_PLINK].dentry) {
++			dput(base[AuBrWh_PLINK].dentry);
++			base[AuBrWh_PLINK].dentry = dget(h_path->dentry);
++		}
 +		wbr->wbr_plink = dget(base[AuBrWh_PLINK].dentry);
 +	} else
 +		au_wh_clean(h_dir, h_path, /*isdir*/1);
@@ -35866,6 +35931,10 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 +	err = au_whdir(h_dir, h_path);
 +	if (unlikely(err))
 +		goto out;
++	else if (h_path->dentry != base[AuBrWh_ORPH].dentry) {
++		dput(base[AuBrWh_ORPH].dentry);
++		base[AuBrWh_ORPH].dentry = dget(h_path->dentry);
++	}
 +	wbr->wbr_orph = dget(base[AuBrWh_ORPH].dentry);
 +
 +out:
@@ -39349,7 +39418,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	2025-05-05 22:39:07.823306601 +0200
++++ linux/include/uapi/linux/aufs_type.h	2025-05-26 10:00:01.996622052 +0200
 @@ -0,0 +1,452 @@
 +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 +/*
@@ -39393,7 +39462,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.14-20250414"
++#define AUFS_VERSION	"6.x-rcN-20250526"
 +
 +/* todo? move this to linux-2.6.19/include/magic.h */
 +#define AUFS_SUPER_MAGIC	('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
@@ -39804,22 +39873,22 @@ 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.14 loopback patch
+aufs6.x-rcN loopback patch
 
 diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 360a30bda4ec7..d46554da825c9 100644
+index 25337d8591aa3..3eafdc162f149 100644
 --- a/drivers/block/loop.c
 +++ b/drivers/block/loop.c
-@@ -54,7 +54,7 @@ struct loop_device {
+@@ -52,7 +52,7 @@ struct loop_device {
  	int		lo_flags;
  	char		lo_file_name[LO_NAME_SIZE];
  
--	struct file *	lo_backing_file;
+-	struct file	*lo_backing_file;
 +	struct file	*lo_backing_file, *lo_backing_virt_file;
+ 	unsigned int	lo_min_dio_size;
  	struct block_device *lo_device;
  
- 	gfp_t		old_gfp_mask;
-@@ -452,6 +452,15 @@ static int do_req_filebacked(struct loop
+@@ -428,6 +428,15 @@ static int do_req_filebacked(struct loop_device *lo, struct request *rq)
  	}
  }
  
@@ -39835,19 +39904,7 @@ index 360a30bda4ec7..d46554da825c9 100644
  static void loop_reread_partitions(struct loop_device *lo)
  {
  	int rc;
-@@ -496,9 +505,10 @@ static int loop_validate_file(struct fil
- 	return 0;
- }
- 
--static void loop_assign_backing_file(struct loop_device *lo, struct file *file)
-+static void loop_assign_backing_file(struct loop_device *lo, struct file *file, struct file *virt_file)
- {
- 	lo->lo_backing_file = file;
-+	lo->lo_backing_virt_file = virt_file;
- 	lo->old_gfp_mask = mapping_gfp_mask(file->f_mapping);
- 	mapping_set_gfp_mask(file->f_mapping,
- 			lo->old_gfp_mask & ~(__GFP_IO | __GFP_FS));
-@@ -528,6 +538,7 @@ static int loop_change_fd(struct loop_de
+@@ -529,6 +538,7 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  {
  	struct file *file = fget(arg);
  	struct file *old_file;
@@ -39855,7 +39912,7 @@ index 360a30bda4ec7..d46554da825c9 100644
  	unsigned int memflags;
  	int error;
  	bool partscan;
-@@ -556,11 +567,19 @@ static int loop_change_fd(struct loop_de
+@@ -557,11 +567,19 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	if (!(lo->lo_flags & LO_FLAGS_READ_ONLY))
  		goto out_err;
  
@@ -39875,34 +39932,35 @@ index 360a30bda4ec7..d46554da825c9 100644
  
  	error = -EINVAL;
  
-@@ -572,7 +591,7 @@ static int loop_change_fd(struct loop_de
- 	disk_force_media_change(lo->lo_disk);
+@@ -581,6 +599,7 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	memflags = blk_mq_freeze_queue(lo->lo_queue);
  	mapping_set_gfp_mask(old_file->f_mapping, lo->old_gfp_mask);
--	loop_assign_backing_file(lo, file);
-+	loop_assign_backing_file(lo, file, virt_file);
+ 	loop_assign_backing_file(lo, file);
++	lo->lo_backing_virt_file = virt_file;
  	loop_update_dio(lo);
  	blk_mq_unfreeze_queue(lo->lo_queue, memflags);
  	partscan = lo->lo_flags & LO_FLAGS_PARTSCAN;
-@@ -592,6 +611,8 @@ static int loop_change_fd(struct loop_de
+@@ -600,6 +619,9 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	 * dependency.
  	 */
  	fput(old_file);
 +	if (old_virt_file)
 +		fput(old_virt_file);
++
  	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
  	if (partscan)
  		loop_reread_partitions(lo);
-@@ -605,6 +626,8 @@ out_err:
+@@ -613,6 +635,9 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	loop_global_unlock(lo, is_loop);
  out_putf:
  	fput(file);
 +	if (virt_file)
 +		fput(virt_file);
++
  	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
  	goto done;
  }
-@@ -963,6 +1006,7 @@ static int loop_configure(struct loop_de
+@@ -990,6 +1015,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
  			  const struct loop_config *config)
  {
  	struct file *file = fget(config->fd);
@@ -39910,7 +39968,7 @@ index 360a30bda4ec7..d46554da825c9 100644
  	struct queue_limits lim;
  	int error;
  	loff_t size;
-@@ -984,6 +1028,13 @@ static int loop_configure(struct loop_de
+@@ -1011,6 +1037,13 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
  	/* This is safe, since we have a reference from open(). */
  	__module_get(THIS_MODULE);
  
@@ -39924,16 +39982,15 @@ index 360a30bda4ec7..d46554da825c9 100644
  	/*
  	 * If we don't hold exclusive handle for the device, upgrade to it
  	 * here to avoid changing device under exclusive owner.
-@@ -1037,7 +1088,7 @@ static int loop_configure(struct loop_de
- 	set_disk_ro(lo->lo_disk, (lo->lo_flags & LO_FLAGS_READ_ONLY) != 0);
+@@ -1065,6 +1098,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
  
  	lo->lo_device = bdev;
--	loop_assign_backing_file(lo, file);
-+	loop_assign_backing_file(lo, file, virt_file);
+ 	loop_assign_backing_file(lo, file);
++	lo->lo_backing_virt_file = virt_file;
  
  	lim = queue_limits_start_update(lo->lo_queue);
  	loop_update_limits(lo, &lim, config->block_size);
-@@ -1081,6 +1132,8 @@ out_bdev:
+@@ -1115,6 +1149,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
  		bd_abort_claiming(bdev, loop_configure);
  out_putf:
  	fput(file);
@@ -39942,7 +39999,7 @@ index 360a30bda4ec7..d46554da825c9 100644
  	/* This is safe: open() is still holding a reference. */
  	module_put(THIS_MODULE);
  	return error;
-@@ -1090,11 +1143,13 @@ static void __loop_clr_fd(struct loop_de
+@@ -1124,11 +1160,13 @@ static void __loop_clr_fd(struct loop_device *lo)
  {
  	struct queue_limits lim;
  	struct file *filp;
@@ -39956,7 +40013,7 @@ index 360a30bda4ec7..d46554da825c9 100644
  	spin_unlock_irq(&lo->lo_lock);
  
  	lo->lo_device = NULL;
-@@ -1161,6 +1216,8 @@ static void __loop_clr_fd(struct loop_de
+@@ -1195,6 +1233,8 @@ static void __loop_clr_fd(struct loop_device *lo)
  	 * fput can take open_mutex which is usually taken before lo_mutex.
  	 */
  	fput(filp);
@@ -40041,10 +40098,10 @@ index e867aa6e757a6..4a4f96e294315 100644
  
  /* ---------------------------------------------------------------------- */
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 80443e8d30b77..5dd006bc336ea 100644
+index fed72def0eb0b..6fd0521854c0c 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -2321,6 +2321,11 @@ struct super_operations {
+@@ -2319,6 +2319,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 60075018..e806a9c8 100644
--- a/kernel-multiarch.config
+++ b/kernel-multiarch.config
@@ -236,6 +236,7 @@ CRYPTO_NULL all=m
 CRYPTO_PCRYPT all=m
 CRYPTO_CRYPTD all=m
 CRYPTO_AUTHENC all=m
+CRYPTO_KRB5ENC all=m
 CRYPTO_TEST all=m
 CRYPTO_RSA all=y
 CRYPTO_DH all=y
@@ -302,8 +303,6 @@ CRYPTO_XCBC all=m
 CRYPTO_XXHASH all=m
 CRYPTO_CRC32C all=m
 CRYPTO_CRC32 all=m
-CRYPTO_CRCT10DIF all=y
-CRYPTO_CRC64_ROCKSOFT all=y
 CRYPTO_DEFLATE all=m
 CRYPTO_LZO all=y
 CRYPTO_842 all=y
@@ -335,6 +334,7 @@ CRYPTO_USER_API_ENABLE_OBSOLETE all=y
 #- file drivers/crypto/Kconfig goes here
 #- file crypto/asymmetric_keys/Kconfig goes here
 #- file certs/Kconfig goes here
+#- file crypto/krb5/Kconfig goes here
 
 #-
 #- *** FILE: crypto/asymmetric_keys/Kconfig ***
@@ -348,6 +348,12 @@ PKCS7_TEST_KEY all=m
 SIGNED_PE_FILE_VERIFICATION all=y
 FIPS_SIGNATURE_SELFTEST all=y
 
+#-
+#- *** FILE: crypto/krb5/Kconfig ***
+#-
+CRYPTO_KRB5 all=m
+CRYPTO_KRB5_SELFTESTS all=n
+
 #-
 #- *** FILE: drivers/accel/Kconfig ***
 #-
@@ -1359,6 +1365,7 @@ X86_AMD_PSTATE all=y
 X86_AMD_PSTATE_UT all=m
 X86_AMD_FREQ_SENSITIVITY all=m
 #- shared options
+CPUFREQ_ARCH_CUR_FREQ all=y
 
 #-
 #- *** FILE: drivers/cpuidle/Kconfig ***
@@ -1409,6 +1416,7 @@ CRYPTO_DEV_CCREE all=m
 #- file drivers/crypto/amlogic/Kconfig goes here
 #- file drivers/crypto/aspeed/Kconfig goes here
 #- file drivers/crypto/starfive/Kconfig goes here
+#- file drivers/crypto/inside-secure/eip93/Kconfig goes here
 
 #-
 #- *** FILE: drivers/crypto/amlogic/Kconfig ***
@@ -1482,6 +1490,7 @@ CXL_MEM_RAW_COMMANDS all=y
 CXL_ACPI=m
 CXL_PMEM=m
 CXL_MEM all=m
+CXL_FEATURES all=y
 CXL_REGION all=y
 CXL_REGION_INVALIDATION_TEST all=n
 
@@ -1633,6 +1642,9 @@ EDAC_LEGACY_SYSFS all=y
 EDAC_DEBUG all=n
 EDAC_DECODE_MCE all=m
 EDAC_GHES all=y
+EDAC_SCRUB all=y
+EDAC_ECS all=y
+EDAC_MEM_REPAIR all=y
 EDAC_AMD64 all=m
 EDAC_AMD76X i386=m
 EDAC_E7XXX i386=m
@@ -1731,6 +1743,7 @@ TURRIS_MOX_RWTM arm=m
 #- file drivers/firmware/microchip/Kconfig goes here
 #- file drivers/firmware/psci/Kconfig goes here
 #- file drivers/firmware/qcom/Kconfig goes here
+#- file drivers/firmware/samsung/Kconfig goes here
 #- file drivers/firmware/smccc/Kconfig goes here
 #- file drivers/firmware/tegra/Kconfig goes here
 #- file drivers/firmware/xilinx/Kconfig goes here
@@ -1865,6 +1878,13 @@ FSI_SBEFIFO all=m
 FSI_OCC all=m
 I2CR_SCOM all=m
 
+#-
+#- *** FILE: drivers/fwctl/Kconfig ***
+#-
+FWCTL all=m
+FWCTL_MLX5 all=m
+FWCTL_PDS all=m
+
 #-
 #- *** FILE: drivers/gnss/Kconfig ***
 #-
@@ -2008,7 +2028,6 @@ DRM_PANIC_SCREEN all="kmsg"
 #- file drivers/gpu/drm/clients/Kconfig goes here
 DRM_LOAD_EDID_FIRMWARE all=y
 #- file drivers/gpu/drm/display/Kconfig goes here
-#- file drivers/gpu/drm/i2c/Kconfig goes here
 #- file drivers/gpu/drm/arm/Kconfig goes here
 #- file drivers/gpu/drm/radeon/Kconfig goes here
 #- file drivers/gpu/drm/amd/amdgpu/Kconfig goes here
@@ -2062,6 +2081,7 @@ DRM_VGEM all=m
 #- file drivers/gpu/drm/aspeed/Kconfig goes here
 #- file drivers/gpu/drm/mcde/Kconfig goes here
 #- file drivers/gpu/drm/tidss/Kconfig goes here
+#- file drivers/gpu/drm/adp/Kconfig goes here
 #- file drivers/gpu/drm/xlnx/Kconfig goes here
 #- file drivers/gpu/drm/gud/Kconfig goes here
 #- file drivers/gpu/drm/solomon/Kconfig goes here
@@ -2136,6 +2156,7 @@ DRM_CHRONTEL_CH7033 all=m
 DRM_CROS_EC_ANX7688 all=m
 DRM_DISPLAY_CONNECTOR all=m
 DRM_FSL_LDB arm=m arm64=m
+DRM_I2C_NXP_TDA998X all=m
 DRM_ITE_IT6263 all=m
 DRM_ITE_IT6505 all=m
 DRM_LONTIUM_LT8912B all=m
@@ -2265,14 +2286,6 @@ DRM_HISI_HIBMC all=m
 #-
 DRM_HISI_KIRIN arm64=m
 
-#-
-#- *** FILE: drivers/gpu/drm/i2c/Kconfig ***
-#-
-DRM_I2C_CH7006 all=m
-DRM_I2C_SIL164 all=m
-DRM_I2C_NXP_TDA998X all=m
-DRM_I2C_NXP_TDA9950 all=m
-
 #-
 #- *** FILE: drivers/gpu/drm/i915/Kconfig ***
 #-
@@ -2351,6 +2364,8 @@ NOUVEAU_DEBUG_PUSH all=n
 DRM_NOUVEAU_BACKLIGHT all=y
 DRM_NOUVEAU_SVM all=y
 DRM_NOUVEAU_GSP_DEFAULT all=n
+DRM_NOUVEAU_CH7006 all=m
+DRM_NOUVEAU_SIL164 all=m
 
 #-
 #- *** FILE: drivers/gpu/drm/omapdrm/Kconfig ***
@@ -2560,6 +2575,7 @@ DRM_TILCDC arm=m
 #-
 #- *** FILE: drivers/gpu/drm/tiny/Kconfig ***
 #-
+DRM_APPLETBDRM all=m
 DRM_ARCPGU all=m
 DRM_BOCHS all=m
 DRM_CIRRUS_QEMU all=m
@@ -2625,6 +2641,8 @@ DRM_VMWGFX_MKSSTATS all=y
 #-
 DRM_XE all=m
 DRM_XE_DISPLAY all=y
+DRM_XE_DP_TUNNEL all=y
+DRM_XE_DEVMEM_MIRROR all=y
 DRM_XE_FORCE_PROBE all=""
 #- file drivers/gpu/drm/xe/Kconfig.debug goes here
 #- file drivers/gpu/drm/xe/Kconfig.profile goes here
@@ -2667,6 +2685,8 @@ HID_ACRUX all=m
 HID_ACRUX_FF all=y
 HID_APPLE all=m
 HID_APPLEIR all=m
+HID_APPLETB_BL all=m
+HID_APPLETB_KBD all=m
 HID_ASUS all=m
 HID_AUREAL all=m
 HID_BELKIN all=m
@@ -2877,6 +2897,7 @@ HYPERV all=m
 HYPERV_VTL_MODE all=n
 HYPERV_UTILS all=m
 HYPERV_BALLOON all=m
+MSHV_ROOT all=m
 
 #-
 #- *** FILE: drivers/hwmon/Kconfig ***
@@ -2918,6 +2939,7 @@ SENSORS_ARM_SCPI all=m
 SENSORS_ASB100 all=m
 SENSORS_ASPEED all=m
 SENSORS_ATXP1 all=m
+SENSORS_CGBC all=m
 SENSORS_CHIPCAP2 all=m
 SENSORS_CORSAIR_CPRO all=m
 SENSORS_CORSAIR_PSU all=m
@@ -2944,6 +2966,7 @@ SENSORS_G762 all=m
 SENSORS_GPIO_FAN all=m
 SENSORS_HIH6130 all=m
 SENSORS_HS3001 all=m
+SENSORS_HTU31 all=m
 SENSORS_IBMAEM all=m
 SENSORS_IBMPEX all=m
 SENSORS_IIO_HWMON all=m
@@ -3129,6 +3152,7 @@ SENSORS_DELTA_AHE50DC_FAN all=m
 SENSORS_FSP_3Y all=m
 SENSORS_IBM_CFFPS all=m
 SENSORS_DPS920AB=m
+SENSORS_INA233 all=m
 SENSORS_INSPUR_IPSPS all=m
 SENSORS_IR35221 all=m
 SENSORS_IR36021 all=m
@@ -3464,12 +3488,15 @@ STK8BA50 all=m
 #-
 AB8500_GPADC all=y
 AD4000 all=m
+AD4030 all=m
 AD4130 all=m
 AD4695 all=m
+AD4851 all=m
 AD7091R5 all=m
 AD7091R8 all=m
 AD7124 all=m
 AD7173 all=m
+AD7191 all=m
 AD7192 all=m
 AD7266 all=m
 AD7280 all=m
@@ -3552,6 +3579,7 @@ TI_ADC128S052 all=m
 TI_ADC161S626 all=m
 TI_ADS1015 all=m
 TI_ADS1119 all=m
+TI_ADS7138 all=m
 TI_ADS7924 all=m
 TI_ADS1100 all=m
 TI_ADS1298 all=m
@@ -3769,6 +3797,7 @@ ADIS16400 all=m
 ADIS16460 all=m
 ADIS16475 all=m
 ADIS16480 all=m
+ADIS16550 all=m
 #- file drivers/iio/imu/bmi160/Kconfig goes here
 #- file drivers/iio/imu/bmi270/Kconfig goes here
 #- file drivers/iio/imu/bmi323/Kconfig goes here
@@ -3840,8 +3869,10 @@ IIO_ST_LSM9DS0_SPI all=m
 ACPI_ALS all=m
 ADJD_S311 all=m
 ADUX1020 all=m
+AL3000A all=m
 AL3010 all=m
 AL3320A all=m
+APDS9160 all=m
 APDS9300 all=m
 APDS9306 all=m
 APDS9960 all=m
@@ -3923,6 +3954,7 @@ SENSORS_HMC5843_I2C all=m
 SENSORS_HMC5843_SPI all=m
 SENSORS_RM3100_I2C all=m
 SENSORS_RM3100_SPI all=m
+SI7210 all=m
 TI_TMAG5273 all=m
 YAMAHA_YAS530 all=m
 
@@ -4806,6 +4838,7 @@ LEDS_MC13783 all=m
 LEDS_TCA6507 all=m
 LEDS_TLC591XX all=m
 LEDS_MAX77650 all=m
+LEDS_MAX77705 all=m
 LEDS_LM355x all=m
 LEDS_OT200 all=m
 LEDS_MENF21BMC all=m
@@ -4834,8 +4867,8 @@ LEDS_TPS6105X all=m
 #- file drivers/leds/rgb/Kconfig goes here
 #- LED Triggers
 #- file drivers/leds/trigger/Kconfig goes here
-#- Simple LED drivers
-#- file drivers/leds/simple/Kconfig goes here
+#- Simatic LED drivers
+#- file drivers/leds/simatic/Kconfig goes here
 
 #-
 #- *** FILE: drivers/leds/blink/Kconfig ***
@@ -4868,7 +4901,7 @@ LEDS_QCOM_LPG all=m
 LEDS_MT6370_RGB all=m
 
 #-
-#- *** FILE: drivers/leds/simple/Kconfig ***
+#- *** FILE: drivers/leds/simatic/Kconfig ***
 #-
 LEDS_SIEMENS_SIMATIC_IPC all=m
 LEDS_SIEMENS_SIMATIC_IPC_APOLLOLAKE all=m
@@ -5060,6 +5093,7 @@ MEDIA_CEC_SUPPORT all=y
 #- *** FILE: drivers/media/cec/i2c/Kconfig ***
 #-
 CEC_CH7322 all=m
+CEC_NXP_TDA9950 all=m
 
 #-
 #- *** FILE: drivers/media/cec/platform/Kconfig ***
@@ -5630,6 +5664,7 @@ VIDEO_MUX all=m
 #- file drivers/media/platform/samsung/Kconfig goes here
 #- file drivers/media/platform/st/Kconfig goes here
 #- file drivers/media/platform/sunxi/Kconfig goes here
+#- file drivers/media/platform/synopsys/Kconfig goes here
 #- file drivers/media/platform/ti/Kconfig goes here
 #- file drivers/media/platform/verisilicon/Kconfig goes here
 #- file drivers/media/platform/via/Kconfig goes here
@@ -6249,6 +6284,7 @@ MFD_MAX14577 all=m
 MFD_MAX77650 all=m
 MFD_MAX77686 all=m
 MFD_MAX77693 all=m
+MFD_MAX77705 all=m
 MFD_MAX77714 all=m
 MFD_MAX8907 all=m
 MFD_MT6360 all=m
@@ -6261,9 +6297,6 @@ MFD_CPCAP all=m
 MFD_VIPERBOARD all=m
 MFD_NTXEC all=m
 MFD_RETU all=m
-MFD_PCF50633 all=m
-PCF50633_ADC all=m
-PCF50633_GPIO all=m
 MFD_PM8XXX arm=m
 MFD_SY7636A all=m
 MFD_RDC321X all=m
@@ -6390,7 +6423,6 @@ MCHP_LAN966X_PCI all=m
 #- file drivers/misc/vmw_vmci/Kconfig goes here
 #- file drivers/misc/genwqe/Kconfig goes here
 #- file drivers/misc/echo/Kconfig goes here
-#- file drivers/misc/cxl/Kconfig goes here
 #- file drivers/misc/ocxl/Kconfig goes here
 #- file drivers/misc/bcm-vk/Kconfig goes here
 #- file drivers/misc/cardreader/Kconfig goes here
@@ -6885,7 +6917,6 @@ MHI_NET all=m
 #- file drivers/net/fddi/Kconfig goes here
 #- file drivers/net/hippi/Kconfig goes here
 #- file drivers/net/ipa/Kconfig goes here
-NET_SB1000 all=m
 #- file drivers/net/phy/Kconfig goes here
 #- file drivers/net/pse-pd/Kconfig goes here
 #- file drivers/net/can/Kconfig goes here
@@ -7194,6 +7225,7 @@ ETHERNET all=y
 #- file drivers/net/ethernet/adaptec/Kconfig goes here
 #- file drivers/net/ethernet/aeroflex/Kconfig goes here
 #- file drivers/net/ethernet/agere/Kconfig goes here
+#- file drivers/net/ethernet/airoha/Kconfig goes here
 #- file drivers/net/ethernet/alacritech/Kconfig goes here
 #- file drivers/net/ethernet/allwinner/Kconfig goes here
 #- file drivers/net/ethernet/alteon/Kconfig goes here
@@ -7961,6 +7993,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
+R8169_LEDS all=y
 RTASE all=m
 
 #-
@@ -8101,7 +8134,6 @@ TLAN all=m sparc=n
 #-
 GELIC_NET ppc64=m
 GELIC_WIRELESS ppc64=y
-SPIDER_NET ppc64=m
 
 #-
 #- *** FILE: drivers/net/ethernet/vertexcom/Kconfig ***
@@ -8204,6 +8236,7 @@ IEEE802154_HWSIM all=m
 MCTP_SERIAL all=m
 MCTP_TRANSPORT_I2C all=m
 MCTP_TRANSPORT_I3C all=m
+MCTP_TRANSPORT_USB all=m
 
 #-
 #- *** FILE: drivers/net/mdio/Kconfig ***
@@ -8318,6 +8351,7 @@ QCA807X_PHY all=m
 #- *** FILE: drivers/net/phy/realtek/Kconfig ***
 #-
 REALTEK_PHY all=m
+REALTEK_PHY_HWMON all=y
 
 #-
 #- *** FILE: drivers/net/plip/Kconfig ***
@@ -8680,7 +8714,8 @@ IWLEGACY_DEBUG all=n
 IWLWIFI all=m
 IWLDVM all=m
 IWLMVM all=m
-#- WARNING: iwlwifi is useless without IWLDVM or IWLMVM
+IWLMLD all=m
+#- WARNING: iwlwifi is useless without IWLDVM or IWLMVM or IWLMLD
 IWLWIFI_DEBUG all=y
 IWLWIFI_DEVICE_TRACING all=n
 IWLMEI all=m
@@ -8916,6 +8951,8 @@ RTW88_8821CS all=m
 RTW88_8821CU all=m
 RTW88_8821AU all=m
 RTW88_8812AU all=m
+RTW88_8814AE all=m
+RTW88_8814AU all=m
 RTW88_DEBUG all=n
 RTW88_DEBUGFS all=n
 
@@ -9311,6 +9348,7 @@ PCI_J721E_EP arm=n arm64=n
 #- *** FILE: drivers/pci/controller/dwc/Kconfig ***
 #-
 PCIE_DW all=y
+PCIE_DW_DEBUGFS all=n
 PCIE_AL arm64=n
 PCI_MESON all=y
 PCI_LAYERSCAPE arm=n
@@ -9385,6 +9423,11 @@ PCIE_DPC all=y
 PCIE_PTM all=y
 PCIE_EDR all=y
 
+#-
+#- *** FILE: drivers/pci/pwrctrl/Kconfig ***
+#-
+PCI_PWRCTL_SLOT all=m
+
 #-
 #- *** FILE: drivers/pci/switch/Kconfig ***
 #-
@@ -9611,6 +9654,7 @@ PINCONF all=y
 GENERIC_PINCONF all=y
 DEBUG_PINCTRL all=n
 PINCTRL_AMD all=y
+PINCTRL_AMDISP all=m
 PINCTRL_AXP209 all=m
 PINCTRL_AW9523 all=m
 PINCTRL_CY8C95X0 all=m
@@ -9772,6 +9816,7 @@ GOLDFISH_PIPE all=m
 #- *** FILE: drivers/platform/mellanox/Kconfig ***
 #-
 MELLANOX_PLATFORM all=y
+MLX_PLATFORM all=m
 MLXREG_HOTPLUG all=m
 MLXREG_IO all=m
 MLXREG_LC all=m
@@ -9841,6 +9886,7 @@ GPD_POCKET_FAN all=m
 WIRELESS_HOTKEY=m
 IBM_RTL all=m
 IDEAPAD_LAPTOP all=m
+LENOVO_WMI_HOTKEY_UTILITIES all=m
 LENOVO_YMC all=m
 SENSORS_HDAPS all=m
 THINKPAD_ACPI i386=m x86_64=m
@@ -9861,6 +9907,7 @@ MSI_WMI_PLATFORM all=m
 XO15_EBOOK all=m
 PCENGINES_APU2 all=m
 BARCO_P50_GPIO all=m
+SAMSUNG_GALAXYBOOK all=m
 SAMSUNG_LAPTOP all=m
 SAMSUNG_Q10 all=m
 ACPI_TOSHIBA i386=m x86_64=m
@@ -9876,7 +9923,6 @@ SONYPI_COMPAT i386=y x86_64=y
 SYSTEM76_ACPI all=m
 TOPSTAR_LAPTOP all=m
 SERIAL_MULTI_INSTANTIATE x86=m
-MLX_PLATFORM all=m
 INSPUR_PLATFORM_PROFILE all=m
 LENOVO_WMI_CAMERA all=m
 #- file drivers/platform/x86/x86-android-tablets/Kconfig goes here
@@ -9923,6 +9969,8 @@ AMD_PMF_DEBUG all=n
 #-
 X86_PLATFORM_DRIVERS_DELL all=y
 ALIENWARE_WMI all=m
+ALIENWARE_WMI_LEGACY all=y
+ALIENWARE_WMI_WMAX all=y
 DCDBAS i386=m x86_64=m
 DELL_LAPTOP all=m
 DELL_RBU i386=m x86_64=m
@@ -10179,7 +10227,6 @@ BATTERY_MAX17040 all=m
 BATTERY_MAX17042 all=m
 BATTERY_MAX1720X all=m
 BATTERY_MAX1721X all=m
-CHARGER_PCF50633 all=m
 CHARGER_ISP1704 all=m
 CHARGER_MAX8903 all=m
 CHARGER_LP8727 all=m
@@ -10191,6 +10238,7 @@ CHARGER_MAX14577 all=m
 CHARGER_DETECTOR_MAX14656 all=m
 CHARGER_MAX77650 all=m
 CHARGER_MAX77693 all=m
+CHARGER_MAX77705 all=m
 CHARGER_MAX77976 all=m
 CHARGER_MP2629 all=m
 CHARGER_MT6360 all=m
@@ -10261,6 +10309,7 @@ PPS_CLIENT_GPIO all=m
 #-
 PPS_GENERATOR all=m
 PPS_GENERATOR_DUMMY all=n
+PPS_GENERATOR_TIO all=m
 
 #-
 #- *** FILE: drivers/ptp/Kconfig ***
@@ -10433,8 +10482,8 @@ REGULATOR_MT6360 all=m
 REGULATOR_MT6370 all=m
 REGULATOR_MT6397 all=m
 REGULATOR_PCA9450 all=m
+REGULATOR_PF9453 all=m
 REGULATOR_PCAP all=m
-REGULATOR_PCF50633 all=m
 REGULATOR_PF8X00 all=m
 REGULATOR_PFUZE100 all=m
 REGULATOR_PV88060 all=m
@@ -10645,7 +10694,6 @@ RTC_DRV_BQ4802 all=m sparc64=y
 RTC_DRV_RP5C01 all=m
 RTC_DRV_WM831X all=m
 RTC_DRV_WM8350 all=m
-RTC_DRV_PCF50633 all=m
 RTC_DRV_AB8500 all=m
 RTC_DRV_OPTEE arm=m arm64=m
 RTC_DRV_ZYNQMP all=m
@@ -10719,7 +10767,6 @@ ISCSI_BOOT_SYSFS arm=m arm64=m
 #- file drivers/scsi/bnx2i/Kconfig goes here
 #- file drivers/scsi/bnx2fc/Kconfig goes here
 #- file drivers/scsi/be2iscsi/Kconfig goes here
-#- file drivers/scsi/cxlflash/Kconfig goes here
 BLK_DEV_3W_XXXX_RAID all=m
 SCSI_HPSA all=m
 SCSI_3W_9XXX all=m
@@ -11124,6 +11171,8 @@ SPI_TLE62X0 all=m
 SPI_SLAVE all=y
 SPI_SLAVE_TIME all=m
 SPI_SLAVE_SYSTEM_CONTROL all=m
+#- SPI Offload triggers
+SPI_OFFLOAD_TRIGGER_PWM all=m
 
 #-
 #- *** FILE: drivers/spmi/Kconfig ***
@@ -11243,7 +11292,6 @@ GREYBUS_USB all=m
 #- *** FILE: drivers/staging/iio/accel/Kconfig ***
 #-
 ADIS16203 all=m
-ADIS16240 all=m
 
 #-
 #- *** FILE: drivers/staging/iio/adc/Kconfig ***
@@ -11626,6 +11674,7 @@ SERIAL_8250_RT288X all=y
 SERIAL_8250_LPSS all=y
 SERIAL_8250_MID all=m
 SERIAL_8250_PERICOM all=m
+SERIAL_8250_NI all=m
 SERIAL_OF_PLATFORM all=m
 
 #-
@@ -11637,7 +11686,6 @@ SERIAL_AMBA_PL010 arm=m arm64=m
 SERIAL_AMBA_PL011 arm=y arm64=y
 SERIAL_AMBA_PL011_CONSOLE arm=y arm64=y
 SERIAL_EARLYCON_SEMIHOST arm=y arm64=y
-SERIAL_KGDB_NMI all=n
 SERIAL_MESON arm64=y
 SERIAL_MESON_CONSOLE arm64=y
 SERIAL_MAX3100 all=m
@@ -12215,6 +12263,7 @@ TYPEC_MUX_PI3USB30532 all=m
 TYPEC_MUX_INTEL_PMC all=m
 TYPEC_MUX_IT5205 all=m
 TYPEC_MUX_NB7VPQ904M all=m
+TYPEC_MUX_PS883X all=m
 TYPEC_MUX_PTN36502 all=m
 TYPEC_MUX_TUSB1046 all=m
 TYPEC_MUX_WCD939X_USBSS all=m
@@ -12303,7 +12352,6 @@ VFIO_MDEV all=m
 #-
 #- *** FILE: drivers/vfio/pci/Kconfig ***
 #-
-VFIO_PCI_MMAP all=y
 VFIO_PCI_INTX all=y
 VFIO_PCI all=m
 VFIO_PCI_VGA all=y
@@ -12377,6 +12425,7 @@ VHOST_CROSS_ENDIAN_LEGACY all=n
 #- file drivers/gpu/vga/Kconfig goes here
 #- file drivers/gpu/host1x/Kconfig goes here
 #- file drivers/gpu/ipu-v3/Kconfig goes here
+#- file drivers/gpu/nova-core/Kconfig goes here
 #- file drivers/gpu/drm/Kconfig goes here
 #- file drivers/video/fbdev/Kconfig goes here
 #- file drivers/video/backlight/Kconfig goes here
@@ -12416,7 +12465,6 @@ BACKLIGHT_SAHARA all=m
 BACKLIGHT_WM831X all=m
 BACKLIGHT_ADP8860 all=m
 BACKLIGHT_ADP8870 all=m
-BACKLIGHT_PCF50633 all=m
 BACKLIGHT_LM3509 all=m
 BACKLIGHT_LM3630A all=m
 BACKLIGHT_LM3639 all=m
@@ -12728,6 +12776,7 @@ DA9063_WATCHDOG all=m
 DA9062_WATCHDOG all=m
 GPIO_WATCHDOG all=m
 LENOVO_SE10_WDT all=m
+LENOVO_SE30_WDT all=m
 MENF21BMC_WATCHDOG all=m
 MENZ069_WATCHDOG all=m
 WDAT_WDT all=m
@@ -12925,7 +12974,6 @@ MISC_FILESYSTEMS all=y
 #- file fs/qnx6/Kconfig goes here
 #- file fs/romfs/Kconfig goes here
 #- file fs/pstore/Kconfig goes here
-#- file fs/sysv/Kconfig goes here
 #- file fs/ufs/Kconfig goes here
 #- file fs/erofs/Kconfig goes here
 #- file fs/vboxsf/Kconfig goes here
@@ -13498,11 +13546,6 @@ SQUASHFS_EMBEDDED all=n
 #-
 SYSFS all=y
 
-#-
-#- *** FILE: fs/sysv/Kconfig ***
-#-
-SYSV_FS all=m
-
 #-
 #- *** FILE: fs/ubifs/Kconfig ***
 #-
@@ -13532,7 +13575,6 @@ UFS_DEBUG all=n
 #- *** FILE: fs/unicode/Kconfig ***
 #-
 UNICODE all=y
-UNICODE_NORMALIZATION_SELFTEST all=m
 
 #-
 #- *** FILE: fs/vboxsf/Kconfig ***
@@ -13668,6 +13710,7 @@ INITRAMFS_PRESERVE_MTIME all=y
 CC_OPTIMIZE_FOR_PERFORMANCE all=y
 CC_OPTIMIZE_FOR_SIZE all=n
 SYSCTL all=y
+SYSFS_SYSCALL all=n
 EXPERT all=n
 UID16 all=y
 FHANDLE all=y
@@ -13687,7 +13730,6 @@ PC104 all=y
 KALLSYMS all=y
 KALLSYMS_SELFTEST all=n
 KALLSYMS_ALL all=y
-KALLSYMS_ABSOLUTE_PERCPU all=y
 PERF_EVENTS all=y
 DEBUG_PERF_USE_VMALLOC all=n
 PROFILING all=y
@@ -13855,6 +13897,7 @@ RCU_SCALE_TEST all=m
 RCU_TORTURE_TEST all=m
 RCU_TORTURE_TEST_CHK_RDR_STATE all=n
 RCU_TORTURE_TEST_LOG_CPU all=n
+RCU_TORTURE_TEST_LOG_GP all=n
 RCU_REF_SCALE_TEST all=m
 RCU_CPU_STALL_TIMEOUT all=60
 RCU_EXP_CPU_STALL_TIMEOUT all=0
@@ -13933,10 +13976,37 @@ KPROBE_EVENT_GEN_TEST all=m
 RV all=y
 #- file kernel/trace/rv/monitors/wip/Kconfig goes here
 #- file kernel/trace/rv/monitors/wwnr/Kconfig goes here
+#- file kernel/trace/rv/monitors/sched/Kconfig goes here
+#- file kernel/trace/rv/monitors/tss/Kconfig goes here
+#- file kernel/trace/rv/monitors/sco/Kconfig goes here
+#- file kernel/trace/rv/monitors/snroc/Kconfig goes here
+#- file kernel/trace/rv/monitors/scpd/Kconfig goes here
+#- file kernel/trace/rv/monitors/snep/Kconfig goes here
+#- file kernel/trace/rv/monitors/sncid/Kconfig goes here
 RV_REACTORS all=y
 RV_REACT_PRINTK all=y
 RV_REACT_PANIC all=y
 
+#-
+#- *** FILE: kernel/trace/rv/monitors/sched/Kconfig ***
+#-
+RV_MON_SCHED all=y
+
+#-
+#- *** FILE: kernel/trace/rv/monitors/sco/Kconfig ***
+#-
+RV_MON_SCO all=y
+
+#-
+#- *** FILE: kernel/trace/rv/monitors/snroc/Kconfig ***
+#-
+RV_MON_SNROC all=y
+
+#-
+#- *** FILE: kernel/trace/rv/monitors/tss/Kconfig ***
+#-
+RV_MON_TSS all=y
+
 #-
 #- *** FILE: kernel/trace/rv/monitors/wwnr/Kconfig ***
 #-
@@ -13955,13 +14025,11 @@ TRACE_MMIO_ACCESS arm64=n
 CRC_CCITT all=y
 CRC16 all=m
 CRC_T10DIF all=y
-CRC64_ROCKSOFT all=y
 CRC_ITU_T all=m
 CRC32 all=y
 CRC64 all=y
 CRC4 all=m
 CRC7 all=m
-LIBCRC32C all=m
 CRC8 all=m
 AUDIT_GENERIC alpha=y i386=y
 RANDOM32_SELFTEST all=y
@@ -14021,6 +14089,7 @@ HEADERS_INSTALL all=y
 DEBUG_SECTION_MISMATCH all=n
 SECTION_MISMATCH_WARN_ONLY all=y
 FRAME_POINTER i386=y x86_64=y
+OBJTOOL_WERROR all=y
 STACK_VALIDATION all=y
 DEBUG_FORCE_WEAK_PER_CPU all=n
 MAGIC_SYSRQ all=y
@@ -14041,6 +14110,7 @@ DEBUG_OBJECTS all=n
 SHRINKER_DEBUG all=n
 DEBUG_STACK_USAGE all=n
 SCHED_STACK_END_CHECK all=y
+DEBUG_VFS all=n
 DEBUG_VM all=n
 DEBUG_VM_PGTABLE all=n
 DEBUG_VIRTUAL all=n
@@ -14066,10 +14136,10 @@ BOOTPARAM_HARDLOCKUP_PANIC all=n
 DETECT_HUNG_TASK all=y
 DEFAULT_HUNG_TASK_TIMEOUT all=120
 BOOTPARAM_HUNG_TASK_PANIC all=n
+DETECT_HUNG_TASK_BLOCKER all=y
 WQ_WATCHDOG all=n
 WQ_CPU_INTENSIVE_REPORT all=n
 TEST_LOCKUP all=m
-SCHED_DEBUG all=n
 SCHEDSTATS all=n
 PROVE_LOCKING all=n
 LOCK_STAT all=n
@@ -14138,8 +14208,6 @@ TEST_HEXDUMP all=m
 STRING_KUNIT_TEST all=n
 STRING_HELPERS_KUNIT_TEST all=m
 TEST_KSTRTOX all=m
-TEST_PRINTF all=m
-TEST_SCANF=m
 TEST_BITMAP all=m
 TEST_UUID all=m
 TEST_XARRAY all=m
@@ -14151,7 +14219,6 @@ TEST_LKM all=m
 TEST_BITOPS all=m
 TEST_VMALLOC all=m
 TEST_BPF all=n
-TEST_BLACKHOLE_DEV all=m
 FIND_BIT_BENCHMARK all=m
 TEST_FIRMWARE all=m
 TEST_SYSCTL all=m
@@ -14275,11 +14342,7 @@ ZSWAP_COMPRESSOR_DEFAULT_842 all=n
 ZSWAP_COMPRESSOR_DEFAULT_LZ4 all=n
 ZSWAP_COMPRESSOR_DEFAULT_LZ4HC all=n
 ZSWAP_COMPRESSOR_DEFAULT_ZSTD all=n
-ZSWAP_ZPOOL_DEFAULT_ZBUD all=y
-ZSWAP_ZPOOL_DEFAULT_Z3FOLD_DEPRECATED all=n
 ZSWAP_ZPOOL_DEFAULT_ZSMALLOC all=n
-ZBUD all=y
-Z3FOLD_DEPRECATED all=m
 ZSMALLOC all=y
 ZSMALLOC_STAT all=y
 ZSMALLOC_CHAIN_SIZE all=8
@@ -14317,6 +14380,7 @@ TRANSPARENT_HUGEPAGE_ALWAYS all=y
 TRANSPARENT_HUGEPAGE_MADVISE all=y
 TRANSPARENT_HUGEPAGE_NEVER all=n
 READ_ONLY_THP_FOR_FS all=n
+NO_PAGE_MAPCOUNT all=n
 CMA all=y
 CMA_DEBUGFS all=n
 CMA_SYSFS all=y
@@ -15495,8 +15559,6 @@ SECURITY_NETWORK_XFRM all=y
 SECURITY_PATH all=y
 INTEL_TXT all=y
 LSM_MMAP_MIN_ADDR all=0 x86_64=65536 i386=65536 sparc64=8192 ppc=65536
-HARDENED_USERCOPY all=y
-FORTIFY_SOURCE all=y
 STATIC_USERMODEHELPER all=n
 #- file security/selinux/Kconfig goes here
 #- file security/smack/Kconfig goes here
@@ -15533,6 +15595,9 @@ STACKLEAK_RUNTIME_DISABLE all=y
 INIT_ON_ALLOC_DEFAULT_ON all=y
 INIT_ON_FREE_DEFAULT_ON all=n
 ZERO_CALL_USED_REGS all=y
+FORTIFY_SOURCE all=y
+HARDENED_USERCOPY all=y
+HARDENED_USERCOPY_DEFAULT_ON all=y
 LIST_HARDENED all=y
 BUG_ON_DATA_CORRUPTION all=n
 RANDSTRUCT_NONE all=n
@@ -16130,6 +16195,7 @@ SND_SOC_ALC5623 all=m
 SND_SOC_AUDIO_IIO_AUX all=m
 SND_SOC_AW8738 all=m
 SND_SOC_AW88395 all=m
+SND_SOC_AW88166 all=m
 SND_SOC_AW88261 all=m
 SND_SOC_AW88081 all=m
 SND_SOC_AW87390 all=m
@@ -16447,6 +16513,7 @@ SND_SOC_INTEL_AVS_MACH_MAX98927 all=m
 SND_SOC_INTEL_AVS_MACH_MAX98357A all=m
 SND_SOC_INTEL_AVS_MACH_MAX98373 all=m
 SND_SOC_INTEL_AVS_MACH_NAU8825 all=m
+SND_SOC_INTEL_AVS_MACH_PCM3168A all=m
 SND_SOC_INTEL_AVS_MACH_PROBE all=m
 SND_SOC_INTEL_AVS_MACH_RT274 all=m
 SND_SOC_INTEL_AVS_MACH_RT286 all=m
@@ -16689,16 +16756,22 @@ RD_ZSTD all=y
 #-
 #- *** PROBABLY REMOVED OPTIONS ***
 #-
+ADIS16240 all=m
 ARCX_ANYBUS_CONTROLLER arm=m arm64=m
+BACKLIGHT_PCF50633 all=m
+CHARGER_PCF50633 all=m
 CPU5_WDT i386=m x86_64=m
 CRC32_BIT all=n
 CRC32_SARWATE all=n
 CRC32_SELFTEST all=n
 CRC32_SLICEBY4 all=n
 CRC32_SLICEBY8 all=y
+CRC64_ROCKSOFT all=y
 CRYPTO_CRC32C_INTEL all=m
 CRYPTO_CRC32_ARM_CE arm=m
 CRYPTO_CRC32_PCLMUL all=m
+CRYPTO_CRC64_ROCKSOFT all=y
+CRYPTO_CRCT10DIF all=y
 CRYPTO_CRCT10DIF_ARM64_CE arm64=m
 CRYPTO_CRCT10DIF_ARM_CE arm=m
 CRYPTO_CRCT10DIF_PCLMUL all=m
@@ -16707,6 +16780,9 @@ CRYPTO_VMAC all=m
 DAMON_DBGFS all=y
 DAMON_DBGFS_DEPRECATED all=n
 DEBUG_TIMEKEEPING all=n
+DRM_I2C_CH7006 all=m
+DRM_I2C_NXP_TDA9950 all=m
+DRM_I2C_SIL164 all=m
 EDAC_AMD8111 powerpc=m
 EDAC_AMD8131 powerpc=m
 EDAC_CELL ppc64=m
@@ -16719,16 +16795,23 @@ I2C_COMPAT all=y
 I2C_NFORCE2_S4985 all=m
 INFINIBAND_HNS arm64=m
 INPUT_EVBUG all=n
+KALLSYMS_ABSOLUTE_PERCPU all=y
 KEYBOARD_MCS all=m
 KS7010 all=m
 LIB80211 all=m
 LIB80211_DEBUG all=n
+LIBCRC32C all=m
 LTE_GDM724X all=m
 MEMORY_HOTPLUG_DEFAULT_ONLINE all=y
 MESON_GX_PM_DOMAINS arm64=m
+MFD_PCF50633 all=m
 MODULE_COMPRESS_NONE all=n
+NET_SB1000 all=m
+PCF50633_ADC all=m
+PCF50633_GPIO all=m
 R8712U all=m
 RADIO_WL128X all=m
+REGULATOR_PCF50633 all=m
 REISERFS_CHECK all=n
 REISERFS_FS all=m
 REISERFS_FS_POSIX_ACL all=y
@@ -16736,12 +16819,15 @@ REISERFS_FS_SECURITY all=y
 REISERFS_FS_XATTR all=y
 REISERFS_PROC_INFO all=y
 ROHM_BU27008 all=m
+RTC_DRV_PCF50633 all=m
 RTL8192E all=m
 RTLLIB all=m
 RTLLIB_CRYPTO_CCMP all=m
 RTLLIB_CRYPTO_TKIP all=m
 RTLLIB_CRYPTO_WEP all=m
 RTS5208 all=m
+SCHED_DEBUG all=n
+SERIAL_KGDB_NMI all=n
 SERIAL_SIFIV all=m
 SND_BCM2708_SOC_HIFIBERRY_DAC arm=m arm64=m
 SND_RPI_SIMPLE_SOUNDCARD arm=m arm64=m
@@ -16768,15 +16854,26 @@ SND_SOC_INTEL_SKYLAKE all=m
 SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC all=y
 SND_SOC_INTEL_SST all=m
 SND_VERBOSE_PRINTK all=n
+SPIDER_NET ppc64=m
 SPLIT_PTLOCK_CPUS all=4
 SUNDANCE all=m
 SUNDANCE_MMIO all=n sparc=y sparc64=y
+SYSV_FS all=m
+TEST_BLACKHOLE_DEV all=m
+TEST_PRINTF all=m
+TEST_SCANF=m
 TI_ST all=m
 TOUCHSCREEN_CYTTSP4_CORE all=m
 TOUCHSCREEN_CYTTSP4_I2C all=m
 TOUCHSCREEN_CYTTSP4_SPI all=m
 TOUCHSCREEN_MCS5000 all=m
+UNICODE_NORMALIZATION_SELFTEST all=m
+VFIO_PCI_MMAP all=y
 VIDEO_ATOMISP_MSRLIST_HELPER all=m
 VT6655 all=m
 VT6656 all=m
 XILINX_INT all=y
+Z3FOLD_DEPRECATED all=m
+ZBUD all=y
+ZSWAP_ZPOOL_DEFAULT_Z3FOLD_DEPRECATED all=n
+ZSWAP_ZPOOL_DEFAULT_ZBUD all=y
diff --git a/update-source.sh b/update-source.sh
index b12b0fe1..8b213675 100755
--- a/update-source.sh
+++ b/update-source.sh
@@ -1,8 +1,8 @@
 #!/bin/sh
 set -xe
 
-BRANCH=aufs6.14
-#BRANCH=aufs6.x-rcN
+#BRANCH=aufs6.14
+BRANCH=aufs6.x-rcN
 
 # aufs6
 [ -d aufs-standalone ] || git clone https://github.com/sfjro/aufs-standalone.git
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/6f1871ad2bab2d6f801e976399f9858f4b024d1c



More information about the pld-cvs-commit mailing list