[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