[packages/kernel] Partial 6.3.0 update (aufs fails to build)
arekm
arekm at pld-linux.org
Mon Apr 24 08:58:51 CEST 2023
commit 5db017eb132180a8a6fb3f255876e776cb38b22b
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Mon Apr 24 08:58:09 2023 +0200
Partial 6.3.0 update (aufs fails to build)
android-enable-building-binder-as-module.patch | 10 -
kernel-aufs.patch | 689 ++++++++++++-------------
kernel-multiarch.config | 362 ++++++++-----
kernel-pom-ng-IPV4OPTSSTRIP.patch | 3 +-
kernel.spec | 8 +-
update-source.sh | 2 +-
6 files changed, 561 insertions(+), 513 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index 2a91d425..4e8d228d 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -65,9 +65,9 @@
%define have_pcmcia 0
%endif
-%define rel 1
-%define basever 6.2
-%define postver .11
+%define rel 0.1
+%define basever 6.3
+%define postver .0
# define this to '-%{basever}' for longterm branch
%define versuffix %{nil}
@@ -118,7 +118,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: 787862593d7bf354cf1a5c37e21fc147
+# Source0-md5: df4f97e65bde4174dd8be2af836f28e1
%if "%{postver}" != ".0"
Patch0: https://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz
# Patch0-md5: 3c17a6ccf1a52b4b2ffaab379bac3ba8
diff --git a/android-enable-building-binder-as-module.patch b/android-enable-building-binder-as-module.patch
index c6006b25..2272c590 100644
--- a/android-enable-building-binder-as-module.patch
+++ b/android-enable-building-binder-as-module.patch
@@ -63,16 +63,6 @@
/**
* task_work_cancel_match - cancel a pending work added by task_work_add()
---- a/mm/memory.c
-+++ b/mm/memory.c
-@@ -1757,6 +1757,7 @@ void zap_page_range(struct vm_area_struc
- mmu_notifier_invalidate_range_end(&range);
- tlb_finish_mmu(&tlb);
- }
-+EXPORT_SYMBOL_GPL(zap_page_range);
-
- /**
- * zap_page_range_single - remove user pages in a given range
--- a/security/security.c
+++ b/security/security.c
@@ -752,24 +752,28 @@ int security_binder_set_context_mgr(cons
diff --git a/kernel-aufs.patch b/kernel-aufs.patch
index 9d9946ba..8829c796 100644
--- a/kernel-aufs.patch
+++ b/kernel-aufs.patch
@@ -1,11 +1,11 @@
SPDX-License-Identifier: GPL-2.0
-aufs6.2 kbuild patch
+aufs6.x-rcN kbuild patch
diff --git a/fs/Kconfig b/fs/Kconfig
-index 2685a4d0d353..a2df3d4bb3aa 100644
+index e99830c65033..ad12851f7abd 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
-@@ -319,6 +319,7 @@ source "fs/sysv/Kconfig"
+@@ -323,6 +323,7 @@ source "fs/sysv/Kconfig"
source "fs/ufs/Kconfig"
source "fs/erofs/Kconfig"
source "fs/vboxsf/Kconfig"
@@ -14,22 +14,22 @@ index 2685a4d0d353..a2df3d4bb3aa 100644
endif # MISC_FILESYSTEMS
diff --git a/fs/Makefile b/fs/Makefile
-index 4dea17840761..9795cbfdd0bf 100644
+index 05f89b5c962f..84f0a6832c11 100644
--- a/fs/Makefile
+++ b/fs/Makefile
-@@ -137,3 +137,4 @@ obj-$(CONFIG_EFIVAR_FS) += efivarfs/
+@@ -138,3 +138,4 @@ obj-$(CONFIG_EFIVAR_FS) += efivarfs/
obj-$(CONFIG_EROFS_FS) += erofs/
obj-$(CONFIG_VBOXSF_FS) += vboxsf/
obj-$(CONFIG_ZONEFS_FS) += zonefs/
+obj-$(CONFIG_AUFS_FS) += aufs/
SPDX-License-Identifier: GPL-2.0
-aufs6.2 base patch
+aufs6.x-rcN base patch
diff --git a/MAINTAINERS b/MAINTAINERS
-index 135d93368d36..7d3230ef47ec 100644
+index 8d5bc223f305..269079ad5d05 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -3526,6 +3526,19 @@ F: include/uapi/linux/audit.h
+@@ -3371,6 +3371,19 @@ F: include/uapi/linux/audit.h
F: kernel/audit*
F: lib/*audit.c
@@ -50,7 +50,7 @@ index 135d93368d36..7d3230ef47ec 100644
M: Miguel Ojeda <ojeda at kernel.org>
S: Maintained
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 1518a6423279..7a9928c6db9d 100644
+index 839373451c2b..463edc7c1633 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -645,6 +645,24 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
@@ -92,10 +92,10 @@ index 52e6d5fdab6b..519321f32f95 100644
{
struct dentry *this_parent;
diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 146c9ab0cd4b..c980a0524118 100644
+index b622be119706..9ea58b7bb580 100644
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
-@@ -33,7 +33,7 @@
+@@ -34,7 +34,7 @@
#define SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT | O_NOATIME)
@@ -104,7 +104,7 @@ index 146c9ab0cd4b..c980a0524118 100644
{
struct inode * inode = file_inode(filp);
int error = 0;
-@@ -63,6 +63,8 @@ static int setfl(int fd, struct file * filp, unsigned long arg)
+@@ -64,6 +64,8 @@ static int setfl(int fd, struct file * filp, unsigned long arg)
if (filp->f_op->check_flags)
error = filp->f_op->check_flags(arg);
@@ -114,10 +114,10 @@ index 146c9ab0cd4b..c980a0524118 100644
return error;
diff --git a/fs/namespace.c b/fs/namespace.c
-index ab467ee58341..8cd34f760f63 100644
+index bc0f15257b49..4e4dce8f483c 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
-@@ -963,6 +963,12 @@ static inline int check_mnt(struct mount *mnt)
+@@ -849,6 +849,12 @@ static inline int check_mnt(struct mount *mnt)
return mnt->mnt_ns == current->nsproxy->mnt_ns;
}
@@ -131,10 +131,10 @@ index ab467ee58341..8cd34f760f63 100644
* vfsmount lock must be held for write
*/
diff --git a/fs/splice.c b/fs/splice.c
-index 5969b7a1d353..21db9b057d60 100644
+index 2e76dbb81a8f..cf863787b4e7 100644
--- a/fs/splice.c
+++ b/fs/splice.c
-@@ -756,8 +756,8 @@ static int warn_unsupported(struct file *file, const char *op)
+@@ -848,8 +848,8 @@ static int warn_unsupported(struct file *file, const char *op)
/*
* Attempt to initiate a splice from pipe to file.
*/
@@ -145,7 +145,7 @@ index 5969b7a1d353..21db9b057d60 100644
{
if (unlikely(!out->f_op->splice_write))
return warn_unsupported(out, "write");
-@@ -767,9 +767,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+@@ -859,9 +859,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
/*
* Attempt to initiate a splice from a file to a pipe.
*/
@@ -159,10 +159,10 @@ index 5969b7a1d353..21db9b057d60 100644
unsigned int p_space;
int ret;
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index c1769a2c5d70..ec560e8704a4 100644
+index c85916e9f7db..d676c6742cc2 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
-@@ -1386,6 +1386,7 @@ extern void fasync_free(struct fasync_struct *);
+@@ -1049,6 +1049,7 @@ extern void fasync_free(struct fasync_struct *);
/* can be called from interrupts */
extern void kill_fasync(struct fasync_struct **, int, int);
@@ -170,7 +170,7 @@ index c1769a2c5d70..ec560e8704a4 100644
extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force);
extern int f_setown(struct file *filp, unsigned long arg, int force);
extern void f_delown(struct file *filp);
-@@ -2113,6 +2114,7 @@ struct file_operations {
+@@ -1776,6 +1777,7 @@ struct file_operations {
ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);
unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
int (*check_flags)(int);
@@ -179,7 +179,7 @@ index c1769a2c5d70..ec560e8704a4 100644
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
-index 1f1099dac3f0..81d10b8e9dc0 100644
+index 1023f349af71..8de40ae43082 100644
--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
@@ -248,6 +248,8 @@ static inline int lockdep_match_key(struct lockdep_map *lock,
@@ -227,10 +227,10 @@ index a55179fd60fc..8e21c53cf883 100644
+ unsigned int flags);
#endif
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index e3375bc40dad..c1f0aadde539 100644
+index 50d4863974e7..36caa2ccf344 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);
@@ -239,7 +239,7 @@ index e3375bc40dad..c1f0aadde539 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;
}
@@ -248,10 +248,10 @@ index e3375bc40dad..c1f0aadde539 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.2 mmap patch
+aufs6.x-rcN mmap patch
diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 9e479d7d202b..986c2ae12f8b 100644
+index 5e0e0ccd47aa..4dd48e01c595 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -2218,7 +2218,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path)
@@ -280,7 +280,7 @@ index 4d3493579458..42edd9a42c78 100644
ino = inode->i_ino;
}
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index af1c49ae11b1..cd6a4e461763 100644
+index 6a96e1713fd5..9faa6e65bf21 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -285,7 +285,10 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
@@ -295,7 +295,7 @@ index af1c49ae11b1..cd6a4e461763 100644
dev = inode->i_sb->s_dev;
ino = inode->i_ino;
pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
-@@ -1940,7 +1943,7 @@ static int show_numa_map(struct seq_file *m, void *v)
+@@ -1939,7 +1942,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;
@@ -305,7 +305,7 @@ index af1c49ae11b1..cd6a4e461763 100644
struct mempolicy *pol;
char buffer[64];
diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
-index 2fd06f52b6a4..b01030da424f 100644
+index 0ec35072a8e5..f0f0a03eb2b5 100644
--- a/fs/proc/task_nommu.c
+++ b/fs/proc/task_nommu.c
@@ -150,7 +150,10 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma)
@@ -321,10 +321,10 @@ index 2fd06f52b6a4..b01030da424f 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 f13f20258ce9..25f4878a0835 100644
+index 1f79667824eb..7e187c88ee4d 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
-@@ -2065,6 +2065,43 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
+@@ -2218,6 +2218,43 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
unmap_mapping_range(mapping, holebegin, holelen, 0);
}
@@ -369,10 +369,10 @@ index f13f20258ce9..25f4878a0835 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 9757067c3053..b6a0f30cd722 100644
+index 0722859c3647..0c5e55b5b345 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
-@@ -504,6 +504,9 @@ struct vm_region {
+@@ -449,6 +449,9 @@ struct vm_region {
unsigned long vm_top; /* region allocated to here */
unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */
struct file *vm_file; /* the backing file or NULL */
@@ -382,7 +382,7 @@ index 9757067c3053..b6a0f30cd722 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
-@@ -575,6 +578,9 @@ struct vm_area_struct {
+@@ -528,6 +531,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). */
@@ -393,7 +393,7 @@ index 9757067c3053..b6a0f30cd722 100644
#ifdef CONFIG_ANON_VMA_NAME
diff --git a/kernel/fork.c b/kernel/fork.c
-index 9f7fe3541897..f9e44ca88a7d 100644
+index f68954d05e89..f102420a50fc 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -664,7 +664,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
@@ -415,10 +415,10 @@ index 8e105e5b3e29..c218d042dbce 100644
obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o
+obj-y += prfile.o
diff --git a/mm/filemap.c b/mm/filemap.c
-index 0e20a8d6dd93..ba1b238d928a 100644
+index 2723104cc06a..d723b8c01689 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
-@@ -3438,7 +3438,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
+@@ -3567,7 +3567,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);
@@ -428,7 +428,7 @@ index 0e20a8d6dd93..ba1b238d928a 100644
if (folio->mapping != mapping) {
folio_unlock(folio);
diff --git a/mm/mmap.c b/mm/mmap.c
-index 425a9349e610..004eb9dbd99a 100644
+index 740b54be3ed4..96b72488ff2a 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -139,7 +139,7 @@ static void remove_vma(struct vm_area_struct *vma)
@@ -440,25 +440,7 @@ index 425a9349e610..004eb9dbd99a 100644
mpol_put(vma_policy(vma));
vm_area_free(vma);
}
-@@ -589,7 +589,7 @@ inline int vma_expand(struct ma_state *mas, struct vm_area_struct *vma,
- if (remove_next) {
- if (file) {
- uprobe_munmap(next, next->vm_start, next->vm_end);
-- fput(file);
-+ vma_fput(vma);
- }
- if (next->anon_vma)
- anon_vma_merge(vma, next);
-@@ -830,7 +830,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
- again:
- if (file) {
- uprobe_munmap(next, next->vm_start, next->vm_end);
-- fput(file);
-+ vma_fput(vma);
- }
- if (next->anon_vma)
- anon_vma_merge(vma, next);
-@@ -2228,7 +2228,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2193,7 +2193,7 @@ int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma,
goto out_free_mpol;
if (new->vm_file)
@@ -467,25 +449,16 @@ index 425a9349e610..004eb9dbd99a 100644
if (new->vm_ops && new->vm_ops->open)
new->vm_ops->open(new);
-@@ -2250,7 +2250,7 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
- if (new->vm_ops && new->vm_ops->close)
- new->vm_ops->close(new);
- if (new->vm_file)
-- fput(new->vm_file);
-+ vma_fput(new);
- unlink_anon_vmas(new);
- out_free_mpol:
- mpol_put(vma_policy(new));
-@@ -2750,7 +2750,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
- if (vma->vm_ops && vma->vm_ops->close)
- vma->vm_ops->close(vma);
+@@ -2700,7 +2700,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;
+- fput(vma->vm_file);
++ vma_fput(vma);
+ vma->vm_file = NULL;
- /* Undo any partial mapping done by a device driver. */
-@@ -2817,6 +2817,9 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+ /* Undo any partial mapping done by a device driver. */
+@@ -2769,6 +2769,9 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
unsigned long populate = 0;
unsigned long ret = -EINVAL;
struct file *file;
@@ -495,7 +468,7 @@ index 425a9349e610..004eb9dbd99a 100644
pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/mm/remap_file_pages.rst.\n",
current->comm, current->pid);
-@@ -2875,10 +2878,34 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -2827,10 +2830,34 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
if (vma->vm_flags & VM_LOCKED)
flags |= MAP_LOCKED;
@@ -530,7 +503,7 @@ index 425a9349e610..004eb9dbd99a 100644
out:
mmap_write_unlock(mm);
if (populate)
-@@ -3226,7 +3253,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -3174,7 +3201,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)
@@ -539,8 +512,17 @@ index 425a9349e610..004eb9dbd99a 100644
if (new_vma->vm_ops && new_vma->vm_ops->open)
new_vma->vm_ops->open(new_vma);
if (vma_link(mm, new_vma))
+@@ -3189,7 +3216,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:
diff --git a/mm/nommu.c b/mm/nommu.c
-index 5b83938ecb67..59d483b9c3d3 100644
+index 57ba243c6a37..07e87572757a 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -523,7 +523,7 @@ static void __put_nommu_region(struct vm_region *region)
@@ -552,7 +534,7 @@ index 5b83938ecb67..59d483b9c3d3 100644
/* IO memory and memory shared directly out of the pagecache
* from ramfs/tmpfs mustn't be released here */
-@@ -653,7 +653,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma)
+@@ -602,7 +602,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);
if (vma->vm_file)
@@ -561,7 +543,7 @@ index 5b83938ecb67..59d483b9c3d3 100644
put_nommu_region(vma->vm_region);
vm_area_free(vma);
}
-@@ -1164,7 +1164,7 @@ unsigned long do_mmap(struct file *file,
+@@ -1124,7 +1124,7 @@ unsigned long do_mmap(struct file *file,
goto error_just_free;
}
}
@@ -570,9 +552,9 @@ index 5b83938ecb67..59d483b9c3d3 100644
kmem_cache_free(vm_region_jar, region);
region = pregion;
result = start;
-@@ -1242,10 +1242,10 @@ unsigned long do_mmap(struct file *file,
+@@ -1206,10 +1206,10 @@ unsigned long do_mmap(struct file *file,
error:
- mas_destroy(&mas);
+ vma_iter_free(&vmi);
if (region->vm_file)
- fput(region->vm_file);
+ vmr_fput(region);
@@ -676,7 +658,7 @@ index 000000000000..8f820a235364
+}
+#endif /* !CONFIG_MMU */
SPDX-License-Identifier: GPL-2.0
-aufs6.2 standalone patch
+aufs6.x-rcN standalone patch
diff --git a/fs/dcache.c b/fs/dcache.c
index 519321f32f95..267e0c65914a 100644
@@ -699,7 +681,7 @@ index 519321f32f95..267e0c65914a 100644
/**
* d_ancestor - search for an ancestor
diff --git a/fs/exec.c b/fs/exec.c
-index ab913243a367..d84461fddf7d 100644
+index 7c44d0c65b1b..feb02a762884 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -111,6 +111,7 @@ bool path_noexec(const struct path *path)
@@ -711,10 +693,10 @@ index ab913243a367..d84461fddf7d 100644
#ifdef CONFIG_USELIB
/*
diff --git a/fs/fcntl.c b/fs/fcntl.c
-index c980a0524118..40087d11a974 100644
+index 9ea58b7bb580..99fef189bcd6 100644
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
-@@ -86,6 +86,7 @@ int setfl(int fd, struct file *filp, unsigned long arg)
+@@ -87,6 +87,7 @@ int setfl(int fd, struct file *filp, unsigned long arg)
out:
return error;
}
@@ -723,10 +705,10 @@ index c980a0524118..40087d11a974 100644
static void f_modown(struct file *filp, struct pid *pid, enum pid_type type,
int force)
diff --git a/fs/file_table.c b/fs/file_table.c
-index dd88701e54a9..ecdb7817b074 100644
+index 372653b92617..69128fe39b6d 100644
--- a/fs/file_table.c
+++ b/fs/file_table.c
-@@ -198,6 +198,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
+@@ -199,6 +199,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
}
return ERR_PTR(-ENFILE);
}
@@ -735,10 +717,10 @@ index dd88701e54a9..ecdb7817b074 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 8cd34f760f63..799a94205906 100644
+index 4e4dce8f483c..836f27e4524d 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
-@@ -571,6 +571,7 @@ void __mnt_drop_write(struct vfsmount *mnt)
+@@ -457,6 +457,7 @@ void __mnt_drop_write(struct vfsmount *mnt)
mnt_dec_writers(real_mount(mnt));
preempt_enable();
}
@@ -746,7 +728,7 @@ index 8cd34f760f63..799a94205906 100644
/**
* mnt_drop_write - give up write access to a mount
-@@ -968,6 +969,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
+@@ -854,6 +855,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
{
return check_mnt(real_mount(mnt));
}
@@ -754,7 +736,7 @@ index 8cd34f760f63..799a94205906 100644
/*
* vfsmount lock must be held for write
-@@ -2165,6 +2167,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+@@ -2062,6 +2064,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
}
return 0;
}
@@ -775,10 +757,10 @@ 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 82c1a28b3308..e7bd6f1c9474 100644
+index 4401a73d4032..cb96731ab1fe 100644
--- a/fs/open.c
+++ b/fs/open.c
-@@ -66,6 +66,7 @@ int do_truncate(struct user_namespace *mnt_userns, struct dentry *dentry,
+@@ -67,6 +67,7 @@ int do_truncate(struct mnt_idmap *idmap, struct dentry *dentry,
inode_unlock(dentry->d_inode);
return ret;
}
@@ -807,10 +789,10 @@ index 7a2ff6157eda..76f5d4d08687 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 21db9b057d60..abcd14f52c1e 100644
+index cf863787b4e7..906f0ac3ad39 100644
--- a/fs/splice.c
+++ b/fs/splice.c
-@@ -763,6 +763,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+@@ -855,6 +855,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
return warn_unsupported(out, "write");
return out->f_op->splice_write(pipe, out, ppos, len, flags);
}
@@ -818,7 +800,7 @@ index 21db9b057d60..abcd14f52c1e 100644
/*
* Attempt to initiate a splice from a file to a pipe.
-@@ -792,6 +793,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+@@ -884,6 +885,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
return warn_unsupported(in, "read");
return in->f_op->splice_read(in, ppos, pipe, len, flags);
}
@@ -827,10 +809,10 @@ index 21db9b057d60..abcd14f52c1e 100644
/**
* splice_direct_to_actor - splices data directly between two non-pipes
diff --git a/fs/xattr.c b/fs/xattr.c
-index adab9a70b536..b2dc4fc0b25b 100644
+index 14a7eb3c8fa8..1536d773998b 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
-@@ -407,6 +407,7 @@ vfs_getxattr_alloc(struct user_namespace *mnt_userns, struct dentry *dentry,
+@@ -408,6 +408,7 @@ vfs_getxattr_alloc(struct mnt_idmap *idmap, struct dentry *dentry,
*xattr_value = value;
return error;
}
@@ -839,10 +821,10 @@ index adab9a70b536..b2dc4fc0b25b 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 c1f0aadde539..278e0a322d20 100644
+index 36caa2ccf344..67085f2c8221 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;
}
@@ -860,7 +842,7 @@ index 065e1ef8fc8d..c623c6f0c645 100644
}
+EXPORT_SYMBOL_GPL(task_work_run);
diff --git a/security/security.c b/security/security.c
-index d1571900a8c7..6fdcf98bf7ea 100644
+index cf6cc576736f..81f24d90f76f 100644
--- a/security/security.c
+++ b/security/security.c
@@ -1195,6 +1195,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
@@ -909,7 +891,7 @@ index d1571900a8c7..6fdcf98bf7ea 100644
}
+EXPORT_SYMBOL_GPL(security_inode_permission);
- int security_inode_setattr(struct user_namespace *mnt_userns,
+ int security_inode_setattr(struct mnt_idmap *idmap,
struct dentry *dentry, struct iattr *attr)
@@ -1593,6 +1599,7 @@ int security_file_permission(struct file *file, int mask)
@@ -919,7 +901,7 @@ index d1571900a8c7..6fdcf98bf7ea 100644
int security_file_alloc(struct file *file)
{
-@@ -1726,6 +1733,7 @@ int security_file_truncate(struct file *file)
+@@ -1727,6 +1734,7 @@ int security_file_truncate(struct file *file)
{
return call_int_hook(file_truncate, 0, file);
}
@@ -929,7 +911,7 @@ index d1571900a8c7..6fdcf98bf7ea 100644
{
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 2023-04-07 12:29:13.123045930 +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
@@ -988,7 +970,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 2023-04-07 12:29:13.123045930 +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
@@ -1023,7 +1005,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 2023-04-07 12:29:13.123045930 +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
@@ -1198,7 +1180,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 2023-04-07 12:29:13.123045930 +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
@@ -1460,7 +1442,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 2023-04-07 12:29:13.123045930 +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
@@ -1549,7 +1531,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 2023-04-07 12:29:13.123045930 +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
@@ -1666,7 +1648,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 2023-04-07 12:29:13.123045930 +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
@@ -1744,7 +1726,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 2023-04-07 12:29:13.123045930 +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
@@ -1812,7 +1794,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 2023-04-07 12:29:13.123045930 +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.
@@ -1860,7 +1842,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 2023-04-07 12:29:13.123045930 +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
@@ -1966,7 +1948,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 2023-04-07 12:29:13.123045930 +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
@@ -2088,7 +2070,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 2023-04-07 12:29:13.123045930 +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
@@ -2164,7 +2146,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 2023-04-07 12:29:13.123045930 +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
@@ -2262,7 +2244,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 2023-04-07 12:29:13.123045930 +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
@@ -2324,7 +2306,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 2023-04-07 12:29:13.123045930 +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
@@ -2380,7 +2362,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 2023-04-07 12:29:13.123045930 +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
@@ -2431,7 +2413,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 2023-04-07 12:29:13.123045930 +0200
++++ linux/Documentation/filesystems/aufs/README 2023-02-20 21:05:51.959693785 +0100
@@ -0,0 +1,408 @@
+
+Aufs6 -- advanced multi layered unification filesystem version 6.x
@@ -2843,7 +2825,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/aufs.h 2022-11-05 23:02:18.959222617 +0100
@@ -0,0 +1,62 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -2909,7 +2891,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/branch.c 2022-11-05 23:02:18.959222617 +0100
@@ -0,0 +1,1427 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -4340,7 +4322,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/branch.h 2023-04-24 08:13:40.969576115 +0200
@@ -0,0 +1,375 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -4490,9 +4472,9 @@ diff -urN /usr/share/empty/fs/aufs/branch.h linux/fs/aufs/branch.h
+ return br->br_path.dentry;
+}
+
-+static inline struct user_namespace *au_br_userns(struct au_branch *br)
++static inline struct mnt_idmap *au_br_idmap(struct au_branch *br)
+{
-+ return mnt_user_ns(br->br_path.mnt);
++ return mnt_idmap(br->br_path.mnt);
+}
+
+static inline struct super_block *au_br_sb(struct au_branch *br)
@@ -4654,9 +4636,9 @@ diff -urN /usr/share/empty/fs/aufs/branch.h linux/fs/aufs/branch.h
+}
+
+static inline
-+struct user_namespace *au_sbr_userns(struct super_block *sb, aufs_bindex_t bindex)
++struct mnt_idmap *au_sbr_idmap(struct super_block *sb, aufs_bindex_t bindex)
+{
-+ return au_br_userns(au_sbr(sb, bindex));
++ return au_br_idmap(au_sbr(sb, bindex));
+}
+
+static inline
@@ -4719,7 +4701,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/conf.mk 2022-11-05 23:02:18.959222617 +0100
@@ -0,0 +1,40 @@
+# SPDX-License-Identifier: GPL-2.0
+
@@ -4763,7 +4745,7 @@ 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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/cpup.c 2023-04-24 08:13:40.969576115 +0200
@@ -0,0 +1,1459 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -5361,18 +5343,18 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
+ int err;
+ struct dentry *h_dentry;
+ /* struct inode *h_inode; */
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+
-+ h_userns = mnt_user_ns(h_path->mnt);
++ h_idmap = mnt_idmap(h_path->mnt);
+ h_dentry = h_path->dentry;
+ /* h_inode = d_inode(h_dentry); */
+ /* forget_all_cached_acls(h_inode)); */
-+ err = vfsub_remove_acl(h_userns, h_dentry, XATTR_NAME_POSIX_ACL_ACCESS);
++ err = vfsub_remove_acl(h_idmap, h_dentry, XATTR_NAME_POSIX_ACL_ACCESS);
+ AuTraceErr(err);
+ if (err == -EOPNOTSUPP)
+ err = 0;
+ if (!err)
-+ err = vfsub_acl_chmod(h_userns, h_dentry, mode);
++ err = vfsub_acl_chmod(h_idmap, h_dentry, mode);
+
+ AuTraceErr(err);
+ return err;
@@ -5383,10 +5365,10 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
+{
+ int err;
+ struct inode *dir, *inode;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+
-+ h_userns = mnt_user_ns(h_path->mnt);
-+ err = vfsub_remove_acl(h_userns, h_path->dentry,
++ h_idmap = mnt_idmap(h_path->mnt);
++ err = vfsub_remove_acl(h_idmap, h_path->dentry,
+ XATTR_NAME_POSIX_ACL_DEFAULT);
+ AuTraceErr(err);
+ if (err == -EOPNOTSUPP)
@@ -5866,7 +5848,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
+ struct dentry *dentry, *parent;
+ struct file *h_file;
+ struct inode *h_dir;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+
+ dentry = cpg->dentry;
+ h_file = NULL;
@@ -5880,8 +5862,8 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
+
+ parent = dget_parent(dentry);
+ h_dir = au_h_iptr(d_inode(parent), cpg->bdst);
-+ h_userns = au_sbr_userns(dentry->d_sb, cpg->bdst);
-+ if (!au_test_h_perm_sio(h_userns, h_dir, MAY_EXEC | MAY_WRITE)
++ h_idmap = au_sbr_idmap(dentry->d_sb, cpg->bdst);
++ if (!au_test_h_perm_sio(h_idmap, h_dir, MAY_EXEC | MAY_WRITE)
+ && !au_cpup_sio_test(cpg->pin, d_inode(dentry)->i_mode))
+ err = au_cpup_simple(cpg);
+ else {
@@ -6051,7 +6033,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
+ struct inode *dir, *h_dir, *h_tmpdir;
+ struct au_wbr *wbr;
+ struct au_pin wh_pin, *pin_orig;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+
+ dentry = cpg->dentry;
+ bdst = cpg->bdst;
@@ -6080,8 +6062,8 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
+ cpg->pin = &wh_pin;
+ }
+
-+ h_userns = au_sbr_userns(dentry->d_sb, bdst);
-+ if (!au_test_h_perm_sio(h_userns, h_tmpdir, MAY_EXEC | MAY_WRITE)
++ h_idmap = au_sbr_idmap(dentry->d_sb, bdst);
++ if (!au_test_h_perm_sio(h_idmap, h_tmpdir, MAY_EXEC | MAY_WRITE)
+ && !au_cpup_sio_test(cpg->pin, d_inode(dentry)->i_mode))
+ err = au_cpup_wh(cpg, file);
+ else {
@@ -6226,7 +6208,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/cpup.h 2022-11-05 23:02:18.962555950 +0100
@@ -0,0 +1,100 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -6330,7 +6312,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/dbgaufs.c 2022-11-05 23:02:18.962555950 +0100
@@ -0,0 +1,526 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -6860,7 +6842,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/dbgaufs.h 2022-11-05 23:02:18.962555950 +0100
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -6917,7 +6899,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/dcsub.c 2022-11-05 23:02:18.962555950 +0100
@@ -0,0 +1,225 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -7146,7 +7128,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/dcsub.h 2022-11-05 23:02:18.962555950 +0100
@@ -0,0 +1,137 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -7287,7 +7269,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/debug.c 2023-02-20 21:05:51.959693785 +0100
@@ -0,0 +1,446 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -7737,7 +7719,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/debug.h 2022-11-05 23:02:18.962555950 +0100
@@ -0,0 +1,226 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -7967,7 +7949,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/dentry.c 2023-04-24 08:13:40.969576115 +0200
@@ -0,0 +1,1168 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -8005,7 +7987,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
+ struct dentry *h_dentry;
+ struct inode *h_inode;
+ struct au_branch *br;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+ struct path h_path;
+ int wh_found, opq;
+ unsigned char wh_able;
@@ -8017,10 +7999,10 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
+ br = au_sbr(dentry->d_sb, bindex);
+ h_path.dentry = h_parent;
+ h_path.mnt = au_br_mnt(br);
-+ h_userns = au_br_userns(br);
++ h_idmap = au_br_idmap(br);
+ wh_able = !!au_br_whable(br->br_perm);
+ if (wh_able)
-+ wh_found = au_wh_test(h_userns, &h_path, &args->whname,
++ wh_found = au_wh_test(h_idmap, &h_path, &args->whname,
+ ignore_perm);
+ h_dentry = ERR_PTR(wh_found);
+ if (!wh_found)
@@ -8038,7 +8020,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
+ if (!ignore_perm)
+ h_dentry = vfsub_lkup_one(args->name, &h_path);
+ else
-+ h_dentry = au_sio_lkup_one(h_userns, args->name, &h_path);
++ h_dentry = au_sio_lkup_one(h_idmap, args->name, &h_path);
+ if (IS_ERR(h_dentry)) {
+ if (PTR_ERR(h_dentry) == -ENAMETOOLONG
+ && !allow_neg)
@@ -8074,7 +8056,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
+
+ h_path.dentry = h_dentry;
+ inode_lock_shared_nested(h_inode, AuLsc_I_CHILD);
-+ opq = au_diropq_test(h_userns, &h_path);
++ opq = au_diropq_test(h_idmap, &h_path);
+ inode_unlock_shared(h_inode);
+ if (opq > 0)
+ au_set_dbdiropq(dentry, bindex);
@@ -8219,13 +8201,13 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
+ return err;
+}
+
-+struct dentry *au_sio_lkup_one(struct user_namespace *userns, struct qstr *name,
++struct dentry *au_sio_lkup_one(struct mnt_idmap *idmap, struct qstr *name,
+ struct path *ppath)
+{
+ struct dentry *dentry;
+ int wkq_err;
+
-+ if (!au_test_h_perm_sio(userns, d_inode(ppath->dentry), MAY_EXEC))
++ if (!au_test_h_perm_sio(idmap, d_inode(ppath->dentry), MAY_EXEC))
+ dentry = vfsub_lkup_one(name, ppath);
+ else {
+ struct vfsub_lkup_one_args args = {
@@ -8250,18 +8232,18 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
+ int err;
+ struct dentry *parent, *h_dentry;
+ struct au_branch *br;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+ struct path h_ppath;
+
+ parent = dget_parent(dentry);
+ br = au_sbr(dentry->d_sb, bindex);
+ h_ppath.dentry = au_h_dptr(parent, bindex);
+ h_ppath.mnt = au_br_mnt(br);
-+ h_userns = au_br_userns(br);
++ h_idmap = au_br_idmap(br);
+ if (wh)
+ h_dentry = au_whtmp_lkup(h_ppath.dentry, br, &dentry->d_name);
+ else
-+ h_dentry = au_sio_lkup_one(h_userns, &dentry->d_name, &h_ppath);
++ h_dentry = au_sio_lkup_one(h_idmap, &dentry->d_name, &h_ppath);
+ err = PTR_ERR(h_dentry);
+ if (IS_ERR(h_dentry))
+ goto out;
@@ -9139,7 +9121,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/dentry.h 2023-04-24 08:13:40.969576115 +0200
@@ -0,0 +1,270 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -9217,7 +9199,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.h linux/fs/aufs/dentry.h
+/* dentry.c */
+extern const struct dentry_operations aufs_dop, aufs_dop_noreval;
+struct au_branch;
-+struct dentry *au_sio_lkup_one(struct user_namespace *userns, struct qstr *name,
++struct dentry *au_sio_lkup_one(struct mnt_idmap *idmap, struct qstr *name,
+ struct path *ppath);
+int au_h_verify(struct dentry *h_dentry, unsigned int udba, struct inode *h_dir,
+ struct dentry *h_parent, struct au_branch *br);
@@ -9413,7 +9395,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/dinfo.c 2022-12-17 09:21:34.796521861 +0100
@@ -0,0 +1,555 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -9972,7 +9954,7 @@ 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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/dir.c 2023-04-24 08:13:40.969576115 +0200
@@ -0,0 +1,765 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -10613,14 +10595,14 @@ diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
+ int err, wkq_err;
+ struct dentry *h_dentry;
+ struct inode *h_inode;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+
-+ h_userns = au_sbr_userns(dentry->d_sb, arg->bindex);
++ h_idmap = au_sbr_idmap(dentry->d_sb, arg->bindex);
+ h_dentry = au_h_dptr(dentry, arg->bindex);
+ h_inode = d_inode(h_dentry);
+ /* todo: i_mode changes anytime? */
+ inode_lock_shared_nested(h_inode, AuLsc_I_CHILD);
-+ err = au_test_h_perm_sio(h_userns, h_inode, MAY_EXEC | MAY_READ);
++ err = au_test_h_perm_sio(h_idmap, h_inode, MAY_EXEC | MAY_READ);
+ inode_unlock_shared(h_inode);
+ if (!err)
+ err = do_test_empty(dentry, arg);
@@ -10741,7 +10723,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/dir.h 2022-11-05 23:02:18.962555950 +0100
@@ -0,0 +1,134 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -10879,7 +10861,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/dirren.c 2022-11-05 23:02:18.962555950 +0100
@@ -0,0 +1,1315 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -12198,7 +12180,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/dirren.h 2022-11-05 23:02:18.962555950 +0100
@@ -0,0 +1,140 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -12342,7 +12324,7 @@ 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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/dynop.c 2022-11-05 23:02:18.962555950 +0100
@@ -0,0 +1,366 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -12712,7 +12694,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/dynop.h 2022-11-05 23:02:18.962555950 +0100
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -12793,7 +12775,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/export.c 2022-12-17 09:21:34.796521861 +0100
@@ -0,0 +1,830 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -13627,7 +13609,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/fhsm.c 2022-11-05 23:02:18.962555950 +0100
@@ -0,0 +1,426 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -14057,7 +14039,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/file.c 2022-12-17 09:21:34.799855195 +0100
@@ -0,0 +1,860 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -14921,7 +14903,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/file.h 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,342 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -15267,7 +15249,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/finfo.c 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,149 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -15420,7 +15402,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/f_op.c 2023-02-20 21:05:51.959693785 +0100
@@ -0,0 +1,780 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -16204,7 +16186,7 @@ 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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/fsctx.c 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,1242 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -17450,7 +17432,7 @@ 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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/fstype.h 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,401 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -17855,7 +17837,7 @@ diff -urN /usr/share/empty/fs/aufs/fstype.h linux/fs/aufs/fstype.h
+#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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/hbl.h 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,65 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -17924,7 +17906,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/hfsnotify.c 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,290 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -18218,7 +18200,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/hfsplus.c 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,60 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -18282,7 +18264,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/hnotify.c 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,715 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -19001,7 +18983,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/iinfo.c 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,286 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -19291,7 +19273,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/inode.c 2023-04-24 08:13:40.969576115 +0200
@@ -0,0 +1,531 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -19807,26 +19789,26 @@ diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
+ return err;
+}
+
-+int au_test_h_perm(struct user_namespace *h_userns, struct inode *h_inode,
++int au_test_h_perm(struct mnt_idmap *h_idmap, struct inode *h_inode,
+ int mask)
+{
+ if (uid_eq(current_fsuid(), GLOBAL_ROOT_UID))
+ return 0;
-+ return inode_permission(h_userns, h_inode, mask);
++ return inode_permission(h_idmap, h_inode, mask);
+}
+
-+int au_test_h_perm_sio(struct user_namespace *h_userns, struct inode *h_inode,
++int au_test_h_perm_sio(struct mnt_idmap *h_idmap, struct inode *h_inode,
+ int mask)
+{
+ if (au_test_nfs(h_inode->i_sb)
+ && (mask & MAY_WRITE)
+ && S_ISDIR(h_inode->i_mode))
+ mask |= MAY_READ; /* force permission check */
-+ return au_test_h_perm(h_userns, h_inode, mask);
++ return au_test_h_perm(h_idmap, h_inode, mask);
+}
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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/inode.h 2023-04-24 08:13:40.969576115 +0200
@@ -0,0 +1,707 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -19967,9 +19949,9 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
+struct inode *au_new_inode(struct dentry *dentry, int must_new);
+int au_test_ro(struct super_block *sb, aufs_bindex_t bindex,
+ struct inode *inode);
-+int au_test_h_perm(struct user_namespace *h_userns, struct inode *h_inode,
++int au_test_h_perm(struct mnt_idmap *h_idmap, struct inode *h_inode,
+ int mask);
-+int au_test_h_perm_sio(struct user_namespace *h_userns, struct inode *h_inode,
++int au_test_h_perm_sio(struct mnt_idmap *h_idmap, struct inode *h_inode,
+ int mask);
+
+static inline int au_wh_ino(struct super_block *sb, aufs_bindex_t bindex,
@@ -20045,20 +20027,20 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
+/* i_op_add.c */
+int au_may_add(struct dentry *dentry, aufs_bindex_t bindex,
+ struct dentry *h_parent, int isdir);
-+int aufs_mknod(struct user_namespace *userns, struct inode *dir,
++int aufs_mknod(struct mnt_idmap *idmap, struct inode *dir,
+ struct dentry *dentry, umode_t mode, dev_t dev);
-+int aufs_symlink(struct user_namespace *userns, struct inode *dir,
++int aufs_symlink(struct mnt_idmap *idmap, struct inode *dir,
+ struct dentry *dentry, const char *symname);
-+int aufs_create(struct user_namespace *userns, struct inode *dir,
++int aufs_create(struct mnt_idmap *idmap, struct inode *dir,
+ struct dentry *dentry, umode_t mode, bool want_excl);
+struct vfsub_aopen_args;
+int au_aopen_or_create(struct inode *dir, struct dentry *dentry,
+ struct vfsub_aopen_args *args);
-+int aufs_tmpfile(struct user_namespace *userns, struct inode *dir,
++int aufs_tmpfile(struct mnt_idmap *idmap, struct inode *dir,
+ struct file *file, umode_t mode);
+int aufs_link(struct dentry *src_dentry, struct inode *dir,
+ struct dentry *dentry);
-+int aufs_mkdir(struct user_namespace *userns, struct inode *dir,
++int aufs_mkdir(struct mnt_idmap *idmap, struct inode *dir,
+ struct dentry *dentry, umode_t mode);
+
+/* i_op_del.c */
@@ -20070,7 +20052,7 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
+
+/* i_op_ren.c */
+int au_wbr(struct dentry *dentry, aufs_bindex_t btgt);
-+int aufs_rename(struct user_namespace *userns,
++int aufs_rename(struct mnt_idmap *idmap,
+ struct inode *_src_dir, struct dentry *_src_dentry,
+ struct inode *_dst_dir, struct dentry *_dst_dentry,
+ unsigned int _flags);
@@ -20155,9 +20137,9 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
+
+#ifdef CONFIG_FS_POSIX_ACL
+struct posix_acl *aufs_get_inode_acl(struct inode *inode, int type, bool rcu);
-+struct posix_acl *aufs_get_acl(struct user_namespace *userns,
++struct posix_acl *aufs_get_acl(struct mnt_idmap *idmap,
+ struct dentry *dentry, int type);
-+int aufs_set_acl(struct user_namespace *userns, struct dentry *dentry,
++int aufs_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,
+ struct posix_acl *acl, int type);
+#endif
+
@@ -20537,7 +20519,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/ioctl.c 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,220 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -20761,7 +20743,7 @@ 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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/i_op_add.c 2023-04-24 08:13:40.969576115 +0200
@@ -0,0 +1,972 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -21131,7 +21113,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
+ return err;
+}
+
-+int aufs_mknod(struct user_namespace *userns, struct inode *dir,
++int aufs_mknod(struct mnt_idmap *idmap, struct inode *dir,
+ struct dentry *dentry, umode_t mode, dev_t dev)
+{
+ struct simple_arg arg = {
@@ -21144,7 +21126,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
+ return add_simple(dir, dentry, &arg);
+}
+
-+int aufs_symlink(struct user_namespace *userns, struct inode *dir,
++int aufs_symlink(struct mnt_idmap *idmap, struct inode *dir,
+ struct dentry *dentry, const char *symname)
+{
+ struct simple_arg arg = {
@@ -21154,7 +21136,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
+ return add_simple(dir, dentry, &arg);
+}
+
-+int aufs_create(struct user_namespace *userns, struct inode *dir,
++int aufs_create(struct mnt_idmap *idmap, struct inode *dir,
+ struct dentry *dentry, umode_t mode, bool want_excl)
+{
+ struct simple_arg arg = {
@@ -21182,7 +21164,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
+ return add_simple(dir, dentry, &arg);
+}
+
-+int aufs_tmpfile(struct user_namespace *userns, struct inode *dir,
++int aufs_tmpfile(struct mnt_idmap *idmap, struct inode *dir,
+ struct file *file, umode_t mode)
+{
+ int err;
@@ -21193,7 +21175,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
+ struct dentry *dentry, *parent, *h_parent, *h_dentry;
+ struct inode *h_dir, *inode;
+ struct vfsmount *h_mnt;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+ struct file *h_file;
+ struct au_wr_dir_args wr_dir_args = {
+ .force_btgt = -1,
@@ -21244,11 +21226,11 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
+ if (unlikely(err))
+ goto out_parent;
+
-+ h_userns = mnt_user_ns(h_mnt);
++ h_idmap = mnt_idmap(h_mnt);
+ h_parent = au_h_dptr(parent, bindex);
+ h_ppath.mnt = h_mnt;
+ h_ppath.dentry = h_parent;
-+ h_file = vfs_tmpfile_open(h_userns, &h_ppath, mode, /*open_flag*/0,
++ h_file = vfs_tmpfile_open(h_idmap, &h_ppath, mode, /*open_flag*/0,
+ current_cred());
+ if (IS_ERR(h_file)) {
+ err = PTR_ERR(h_file);
@@ -21627,7 +21609,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
+ return err;
+}
+
-+int aufs_mkdir(struct user_namespace *userns, struct inode *dir,
++int aufs_mkdir(struct mnt_idmap *idmap, struct inode *dir,
+ struct dentry *dentry, umode_t mode)
+{
+ int err, rerr;
@@ -21737,8 +21719,8 @@ 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 2023-04-07 12:29:13.126380830 +0200
-@@ -0,0 +1,1516 @@
++++ linux/fs/aufs/i_op.c 2023-04-24 08:13:40.969576115 +0200
+@@ -0,0 +1,1517 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2022 Junjiro R. Okajima
@@ -21762,6 +21744,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ */
+
+#include <linux/device_cgroup.h>
++#include <linux/filelock.h>
+#include <linux/fs_stack.h>
+#include <linux/iversion.h>
+#include <linux/security.h>
@@ -21772,7 +21755,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+{
+ int err;
+ const unsigned char write_mask = !!(mask & (MAY_WRITE | MAY_APPEND));
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+
+ err = -EPERM;
+ if (write_mask && IS_IMMUTABLE(h_inode))
@@ -21792,7 +21775,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ * - nfs always sets SB_POSIXACL regardless its mount option 'noacl.'
+ * in this case, generic_permission() returns -EOPNOTSUPP.
+ */
-+ h_userns = mnt_user_ns(h_path->mnt);
++ h_idmap = mnt_idmap(h_path->mnt);
+ if ((write_mask && !au_br_writable(brperm))
+ || (au_test_nfs(h_inode->i_sb) && S_ISDIR(h_inode->i_mode)
+ && write_mask && !(mask & MAY_READ))
@@ -21800,14 +21783,14 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ /* AuLabel(generic_permission); */
+ /* AuDbg("get_inode_acl %ps\n",
+ h_inode->i_op->get_inode_acl); */
-+ err = generic_permission(h_userns, h_inode, mask);
++ err = generic_permission(h_idmap, h_inode, mask);
+ if (err == -EOPNOTSUPP && au_test_nfs_noacl(h_inode))
-+ err = h_inode->i_op->permission(h_userns, h_inode,
++ err = h_inode->i_op->permission(h_idmap, h_inode,
+ mask);
+ AuTraceErr(err);
+ } else {
+ /* AuLabel(h_inode->permission); */
-+ err = h_inode->i_op->permission(h_userns, h_inode, mask);
++ err = h_inode->i_op->permission(h_idmap, h_inode, mask);
+ AuTraceErr(err);
+ }
+
@@ -21820,7 +21803,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ return err;
+}
+
-+static int aufs_permission(struct user_namespace *userns, struct inode *inode,
++static int aufs_permission(struct mnt_idmap *idmap, struct inode *inode,
+ int mask)
+{
+ int err;
@@ -22669,7 +22652,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ return err;
+}
+
-+static int aufs_setattr(struct user_namespace *userns, struct dentry *dentry,
++static int aufs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
+ struct iattr *ia)
+{
+ int err;
@@ -22677,12 +22660,12 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ struct super_block *sb;
+ struct file *file;
+ struct au_icpup_args *a;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+
+ inode = d_inode(dentry);
+ IMustLock(inode);
+
-+ err = setattr_prepare(userns, dentry, ia);
++ err = setattr_prepare(idmap, dentry, ia);
+ if (unlikely(err))
+ goto out;
+
@@ -22776,8 +22759,8 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ * why don't all acl-aware fs call this func from their ->setattr()?
+ */
+ if (!err && (ia->ia_valid & ATTR_MODE)) {
-+ h_userns = mnt_user_ns(a->h_path.mnt);
-+ err = vfsub_acl_chmod(h_userns, a->h_path.dentry, ia->ia_mode);
++ h_idmap = mnt_idmap(a->h_path.mnt);
++ err = vfsub_acl_chmod(h_idmap, a->h_path.dentry, ia->ia_mode);
+ }
+ if (!err)
+ au_cpup_attr_changeable(inode);
@@ -22840,7 +22823,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ struct super_block *sb;
+ struct au_icpup_args *a;
+ struct inode *h_inode;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+
+ IMustLock(inode);
+
@@ -22859,13 +22842,13 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ err = au_h_path_to_set_attr(dentry, a, &h_path);
+ if (unlikely(err))
+ goto out_di;
-+ h_userns = mnt_user_ns(h_path.mnt);
++ h_idmap = mnt_idmap(h_path.mnt);
+
+ inode_unlock(a->h_inode);
+ switch (arg->type) {
+ case AU_XATTR_SET:
+ AuDebugOn(d_is_negative(h_path.dentry));
-+ err = vfsub_setxattr(h_userns, h_path.dentry,
++ err = vfsub_setxattr(h_idmap, h_path.dentry,
+ arg->u.set.name, arg->u.set.value,
+ arg->u.set.size, arg->u.set.flags);
+ break;
@@ -22874,7 +22857,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ h_inode = d_inode(h_path.dentry);
+ if (h_inode->i_op->set_acl) {
+ /* this will call posix_acl_update_mode */
-+ err = h_inode->i_op->set_acl(h_userns, h_path.dentry,
++ err = h_inode->i_op->set_acl(h_idmap, h_path.dentry,
+ arg->u.acl_set.acl,
+ arg->u.acl_set.type);
+ }
@@ -23008,7 +22991,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ return err;
+}
+
-+static int aufs_getattr(struct user_namespace *userns, const struct path *path,
++static int aufs_getattr(struct mnt_idmap *idmap, const struct path *path,
+ struct kstat *st, u32 request, unsigned int query)
+{
+ int err;
@@ -23046,7 +23029,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ goto out_di;
+
+out_fill:
-+ generic_fillattr(userns, inode, st);
++ generic_fillattr(idmap, inode, st);
+out_di:
+ di_read_unlock(dentry, AuLock_IR);
+out_si:
@@ -23257,7 +23240,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/i_op_del.c 2023-04-24 08:13:40.969576115 +0200
@@ -0,0 +1,522 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -23358,7 +23341,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_del.c linux/fs/aufs/i_op_del.c
+ struct path h_ppath;
+ struct super_block *sb;
+ struct au_branch *br;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (d_really_is_positive(dentry)) {
@@ -23398,15 +23381,15 @@ diff -urN /usr/share/empty/fs/aufs/i_op_del.c linux/fs/aufs/i_op_del.c
+ err = -EACCES;
+ sb = dentry->d_sb;
+ br = au_sbr(sb, bindex);
-+ h_userns = au_br_userns(br);
++ h_idmap = au_br_idmap(br);
+ if (unlikely(!au_opt_test(au_mntflags(sb), DIRPERM1)
-+ && au_test_h_perm(h_userns, d_inode(h_parent),
++ && au_test_h_perm(h_idmap, d_inode(h_parent),
+ MAY_EXEC | MAY_WRITE)))
+ goto out;
+
+ h_ppath.dentry = h_parent;
+ h_ppath.mnt = au_br_mnt(br);
-+ h_latest = au_sio_lkup_one(h_userns, &dentry->d_name, &h_ppath);
++ h_latest = au_sio_lkup_one(h_idmap, &dentry->d_name, &h_ppath);
+ err = -EIO;
+ if (IS_ERR(h_latest))
+ goto out;
@@ -23783,7 +23766,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/i_op_ren.c 2023-04-24 08:13:40.969576115 +0200
@@ -0,0 +1,1257 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -24746,7 +24729,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_ren.c linux/fs/aufs/i_op_ren.c
+
+/* ---------------------------------------------------------------------- */
+
-+int aufs_rename(struct user_namespace *userns,
++int aufs_rename(struct mnt_idmap *idmap,
+ struct inode *_src_dir, struct dentry *_src_dentry,
+ struct inode *_dst_dir, struct dentry *_dst_dentry,
+ unsigned int _flags)
@@ -25044,7 +25027,7 @@ 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 2023-04-07 12:29:13.123045930 +0200
++++ linux/fs/aufs/Kconfig 2022-11-05 23:02:18.959222617 +0100
@@ -0,0 +1,199 @@
+# SPDX-License-Identifier: GPL-2.0
+config AUFS_FS
@@ -25247,7 +25230,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/lcnt.h 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,186 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -25437,7 +25420,7 @@ diff -urN /usr/share/empty/fs/aufs/lcnt.h linux/fs/aufs/lcnt.h
+#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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/loop.c 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,148 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -25589,7 +25572,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/loop.h 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,55 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -25648,7 +25631,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/magic.mk 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,31 @@
+# SPDX-License-Identifier: GPL-2.0
+
@@ -25683,7 +25666,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 2023-04-07 12:29:13.123045930 +0200
++++ linux/fs/aufs/Makefile 2022-11-05 23:02:18.959222617 +0100
@@ -0,0 +1,46 @@
+# SPDX-License-Identifier: GPL-2.0
+
@@ -25733,7 +25716,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/module.c 2022-11-05 23:02:18.965889284 +0100
@@ -0,0 +1,273 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -26010,7 +25993,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/module.h 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,180 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -26194,7 +26177,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/mvdown.c 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,706 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -26904,7 +26887,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/opts.c 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,1032 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -27940,7 +27923,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/opts.h 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,263 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -28207,7 +28190,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/plink.c 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,516 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -28727,7 +28710,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/poll.c 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -28782,7 +28765,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/posix_acl.c 2023-04-24 08:13:40.969576115 +0200
@@ -0,0 +1,108 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -28854,7 +28837,7 @@ diff -urN /usr/share/empty/fs/aufs/posix_acl.c linux/fs/aufs/posix_acl.c
+ return acl;
+}
+
-+struct posix_acl *aufs_get_acl(struct user_namespace *userns,
++struct posix_acl *aufs_get_acl(struct mnt_idmap *idmap,
+ struct dentry *dentry, int type)
+{
+ struct posix_acl *acl;
@@ -28866,7 +28849,7 @@ diff -urN /usr/share/empty/fs/aufs/posix_acl.c linux/fs/aufs/posix_acl.c
+ return acl;
+}
+
-+int aufs_set_acl(struct user_namespace *userns, struct dentry *dentry,
++int aufs_set_acl(struct mnt_idmap *idmap, struct dentry *dentry,
+ struct posix_acl *acl, int type)
+{
+ int err;
@@ -28894,7 +28877,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/procfs.c 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,170 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -29068,7 +29051,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 2023-04-07 12:29:13.126380830 +0200
++++ linux/fs/aufs/rdu.c 2022-12-17 09:21:34.799855195 +0100
@@ -0,0 +1,384 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -29456,7 +29439,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/rwsem.h 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,85 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -29545,7 +29528,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/sbinfo.c 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,316 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -29865,7 +29848,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/super.c 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,871 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -30740,7 +30723,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/super.h 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,592 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -31336,7 +31319,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/sysaufs.c 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,94 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -31434,7 +31417,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/sysaufs.h 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,102 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -31540,7 +31523,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/sysfs.c 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,374 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -31918,7 +31901,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/sysrq.c 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,149 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -32071,7 +32054,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/vdir.c 2022-12-17 09:21:34.799855195 +0100
@@ -0,0 +1,896 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -32971,7 +32954,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/vfsub.c 2023-04-24 08:13:40.969576115 +0200
@@ -0,0 +1,918 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -33223,7 +33206,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+{
+ int err;
+ struct dentry *d;
-+ struct user_namespace *userns;
++ struct mnt_idmap *idmap;
+
+ IMustLock(dir);
+
@@ -33233,10 +33216,10 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+ path->dentry = d;
+ if (unlikely(err))
+ goto out;
-+ userns = mnt_user_ns(path->mnt);
++ idmap = mnt_idmap(path->mnt);
+
+ lockdep_off();
-+ err = vfs_create(userns, dir, path->dentry, mode, want_excl);
++ err = vfs_create(idmap, dir, path->dentry, mode, want_excl);
+ lockdep_on();
+ if (!err) {
+ struct path tmp = *path;
@@ -33258,7 +33241,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+{
+ int err;
+ struct dentry *d;
-+ struct user_namespace *userns;
++ struct mnt_idmap *idmap;
+
+ IMustLock(dir);
+
@@ -33268,10 +33251,10 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+ path->dentry = d;
+ if (unlikely(err))
+ goto out;
-+ userns = mnt_user_ns(path->mnt);
++ idmap = mnt_idmap(path->mnt);
+
+ lockdep_off();
-+ err = vfs_symlink(userns, dir, path->dentry, symname);
++ err = vfs_symlink(idmap, dir, path->dentry, symname);
+ lockdep_on();
+ if (!err) {
+ struct path tmp = *path;
@@ -33293,7 +33276,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+{
+ int err;
+ struct dentry *d;
-+ struct user_namespace *userns;
++ struct mnt_idmap *idmap;
+
+ IMustLock(dir);
+
@@ -33303,10 +33286,10 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+ path->dentry = d;
+ if (unlikely(err))
+ goto out;
-+ userns = mnt_user_ns(path->mnt);
++ idmap = mnt_idmap(path->mnt);
+
+ lockdep_off();
-+ err = vfs_mknod(userns, dir, path->dentry, mode, dev);
++ err = vfs_mknod(idmap, dir, path->dentry, mode, dev);
+ lockdep_on();
+ if (!err) {
+ struct path tmp = *path;
@@ -33339,7 +33322,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+{
+ int err;
+ struct dentry *d;
-+ struct user_namespace *userns;
++ struct mnt_idmap *idmap;
+
+ IMustLock(dir);
+
@@ -33354,10 +33337,10 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+ path->dentry = d;
+ if (unlikely(err))
+ goto out;
-+ userns = mnt_user_ns(path->mnt);
++ idmap = mnt_idmap(path->mnt);
+
+ lockdep_off();
-+ err = vfs_link(src_dentry, userns, dir, path->dentry, delegated_inode);
++ err = vfs_link(src_dentry, idmap, dir, path->dentry, delegated_inode);
+ lockdep_on();
+ if (!err) {
+ struct path tmp = *path;
@@ -33400,10 +33383,10 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+ if (unlikely(err))
+ goto out;
+
-+ rd.old_mnt_userns = mnt_user_ns(path->mnt);
++ rd.old_mnt_idmap = mnt_idmap(path->mnt);
+ rd.old_dir = src_dir;
+ rd.old_dentry = src_dentry;
-+ rd.new_mnt_userns = rd.old_mnt_userns;
++ rd.new_mnt_idmap = rd.old_mnt_idmap;
+ rd.new_dir = dir;
+ rd.new_dentry = path->dentry;
+ rd.delegated_inode = delegated_inode;
@@ -33433,7 +33416,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+{
+ int err;
+ struct dentry *d;
-+ struct user_namespace *userns;
++ struct mnt_idmap *idmap;
+
+ IMustLock(dir);
+
@@ -33443,10 +33426,10 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+ path->dentry = d;
+ if (unlikely(err))
+ goto out;
-+ userns = mnt_user_ns(path->mnt);
++ idmap = mnt_idmap(path->mnt);
+
+ lockdep_off();
-+ err = vfs_mkdir(userns, dir, path->dentry, mode);
++ err = vfs_mkdir(idmap, dir, path->dentry, mode);
+ lockdep_on();
+ if (!err) {
+ struct path tmp = *path;
@@ -33468,7 +33451,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+{
+ int err;
+ struct dentry *d;
-+ struct user_namespace *userns;
++ struct mnt_idmap *idmap;
+
+ IMustLock(dir);
+
@@ -33478,10 +33461,10 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+ path->dentry = d;
+ if (unlikely(err))
+ goto out;
-+ userns = mnt_user_ns(path->mnt);
++ idmap = mnt_idmap(path->mnt);
+
+ lockdep_off();
-+ err = vfs_rmdir(userns, dir, path->dentry);
++ err = vfs_rmdir(idmap, dir, path->dentry);
+ lockdep_on();
+ if (!err) {
+ struct path tmp = {
@@ -33639,7 +33622,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+ int err;
+ struct inode *h_inode;
+ struct super_block *h_sb;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+
+ if (!h_file) {
+ err = vfsub_truncate(h_path, length);
@@ -33653,9 +33636,9 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+ lockdep_on();
+ err = security_file_truncate(h_file);
+ if (!err) {
-+ h_userns = mnt_user_ns(h_path->mnt);
++ h_idmap = mnt_idmap(h_path->mnt);
+ lockdep_off();
-+ err = do_truncate(h_userns, h_path->dentry, length, attr,
++ err = do_truncate(h_idmap, h_path->dentry, length, attr,
+ h_file);
+ lockdep_on();
+ }
@@ -33685,10 +33668,10 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+int vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode)
+{
+ int err, do_sio, wkq_err;
-+ struct user_namespace *userns;
++ struct mnt_idmap *idmap;
+
-+ userns = mnt_user_ns(path->mnt);
-+ do_sio = au_test_h_perm_sio(userns, dir, MAY_EXEC | MAY_WRITE);
++ idmap = mnt_idmap(path->mnt);
++ do_sio = au_test_h_perm_sio(idmap, dir, MAY_EXEC | MAY_WRITE);
+ if (!do_sio) {
+ lockdep_off();
+ err = vfsub_mkdir(dir, path, mode);
@@ -33723,10 +33706,10 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+int vfsub_sio_rmdir(struct inode *dir, struct path *path)
+{
+ int err, do_sio, wkq_err;
-+ struct user_namespace *userns;
++ struct mnt_idmap *idmap;
+
-+ userns = mnt_user_ns(path->mnt);
-+ do_sio = au_test_h_perm_sio(userns, dir, MAY_EXEC | MAY_WRITE);
++ idmap = mnt_idmap(path->mnt);
++ do_sio = au_test_h_perm_sio(idmap, dir, MAY_EXEC | MAY_WRITE);
+ if (!do_sio) {
+ lockdep_off();
+ err = vfsub_rmdir(dir, path);
@@ -33758,16 +33741,16 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+{
+ struct notify_change_args *a = args;
+ struct inode *h_inode;
-+ struct user_namespace *userns;
++ struct mnt_idmap *idmap;
+
+ h_inode = d_inode(a->path->dentry);
+ IMustLock(h_inode);
+
+ *a->errp = -EPERM;
+ if (!IS_IMMUTABLE(h_inode) && !IS_APPEND(h_inode)) {
-+ userns = mnt_user_ns(a->path->mnt);
++ idmap = mnt_idmap(a->path->mnt);
+ lockdep_off();
-+ *a->errp = notify_change(userns, a->path->dentry, a->ia,
++ *a->errp = notify_change(idmap, a->path->dentry, a->ia,
+ a->delegated_inode);
+ lockdep_on();
+ if (!*a->errp)
@@ -33824,7 +33807,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+ struct unlink_args *a = args;
+ struct dentry *d = a->path->dentry;
+ struct inode *h_inode;
-+ struct user_namespace *userns;
++ struct mnt_idmap *idmap;
+ const int stop_sillyrename = (au_test_nfs(d->d_sb)
+ && au_dcount(d) == 1);
+
@@ -33844,9 +33827,9 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+ ihold(h_inode);
+ }
+
-+ userns = mnt_user_ns(a->path->mnt);
++ idmap = mnt_idmap(a->path->mnt);
+ lockdep_off();
-+ *a->errp = vfs_unlink(userns, a->dir, d, a->delegated_inode);
++ *a->errp = vfs_unlink(idmap, a->dir, d, a->delegated_inode);
+ lockdep_on();
+ if (!*a->errp) {
+ struct path tmp = {
@@ -33893,7 +33876,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+}
diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
--- /usr/share/empty/fs/aufs/vfsub.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/vfsub.h 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/vfsub.h 2023-04-24 08:13:40.969576115 +0200
@@ -0,0 +1,390 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -34131,18 +34114,18 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
+}
+
+#ifdef CONFIG_FS_POSIX_ACL
-+static inline int vfsub_acl_chmod(struct user_namespace *h_userns,
++static inline int vfsub_acl_chmod(struct mnt_idmap *h_idmap,
+ struct dentry *h_dentry, umode_t h_mode)
+{
+ int err;
+
-+ err = posix_acl_chmod(h_userns, h_dentry, h_mode);
++ err = posix_acl_chmod(h_idmap, h_dentry, h_mode);
+ if (err == -EOPNOTSUPP)
+ err = 0;
+ return err;
+}
+#else
-+AuStubInt0(vfsub_acl_chmod, struct user_namespace *h_userns,
++AuStubInt0(vfsub_acl_chmod, struct mnt_idmap *h_idmap,
+ struct dentry *h_dentry, umode_t h_mode);
+#endif
+
@@ -34226,60 +34209,60 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
+
+/* ---------------------------------------------------------------------- */
+
-+static inline int vfsub_setxattr(struct user_namespace *userns,
++static inline int vfsub_setxattr(struct mnt_idmap *idmap,
+ struct dentry *dentry, const char *name,
+ const void *value, size_t size, int flags)
+{
+ int err;
+
+ lockdep_off();
-+ err = vfs_setxattr(userns, dentry, name, value, size, flags);
++ err = vfs_setxattr(idmap, dentry, name, value, size, flags);
+ lockdep_on();
+
+ return err;
+}
+
-+static inline int vfsub_removexattr(struct user_namespace *userns,
++static inline int vfsub_removexattr(struct mnt_idmap *idmap,
+ struct dentry *dentry, const char *name)
+{
+ int err;
+
+ lockdep_off();
-+ err = vfs_removexattr(userns, dentry, name);
++ err = vfs_removexattr(idmap, dentry, name);
+ lockdep_on();
+
+ return err;
+}
+
+#ifdef CONFIG_FS_POSIX_ACL
-+static inline int vfsub_set_acl(struct user_namespace *userns,
++static inline int vfsub_set_acl(struct mnt_idmap *idmap,
+ struct dentry *dentry, const char *name,
+ struct posix_acl *acl)
+{
+ int err;
+
+ lockdep_off();
-+ err = vfs_set_acl(userns, dentry, name, acl);
++ err = vfs_set_acl(idmap, dentry, name, acl);
+ lockdep_on();
+
+ return err;
+}
+
-+static inline int vfsub_remove_acl(struct user_namespace *userns,
++static inline int vfsub_remove_acl(struct mnt_idmap *idmap,
+ struct dentry *dentry, const char *name)
+{
+ int err;
+
+ lockdep_off();
-+ err = vfs_remove_acl(userns, dentry, name);
++ err = vfs_remove_acl(idmap, dentry, name);
+ lockdep_on();
+
+ return err;
+}
+#else
-+AuStubInt0(vfsub_set_acl, struct user_namespace *userns, struct dentry *dentry,
++AuStubInt0(vfsub_set_acl, struct mnt_idmap *idmap, struct dentry *dentry,
+ const char *name, struct posix_acl *acl);
-+AuStubInt0(vfsub_remove_acl, struct user_namespace *userns,
++AuStubInt0(vfsub_remove_acl, struct mnt_idmap *idmap,
+ struct dentry *dentry, const char *name);
+#endif
+
@@ -34287,7 +34270,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/wbr_policy.c 2022-11-05 23:02:18.969222617 +0100
@@ -0,0 +1,830 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -35121,7 +35104,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/whout.c 2023-04-24 08:13:40.972909448 +0200
@@ -0,0 +1,1072 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -35189,7 +35172,7 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
+ * test if the @wh_name exists under @h_ppath.
+ * @try_sio specifies the necessary of super-io.
+ */
-+int au_wh_test(struct user_namespace *h_userns, struct path *h_ppath,
++int au_wh_test(struct mnt_idmap *h_idmap, struct path *h_ppath,
+ struct qstr *wh_name, int try_sio)
+{
+ int err;
@@ -35198,7 +35181,7 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
+ if (!try_sio)
+ wh_dentry = vfsub_lkup_one(wh_name, h_ppath);
+ else
-+ wh_dentry = au_sio_lkup_one(h_userns, wh_name, h_ppath);
++ wh_dentry = au_sio_lkup_one(h_idmap, wh_name, h_ppath);
+ err = PTR_ERR(wh_dentry);
+ if (IS_ERR(wh_dentry)) {
+ if (err == -ENAMETOOLONG)
@@ -35227,14 +35210,14 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
+/*
+ * test if the @h_path->dentry sets opaque or not.
+ */
-+int au_diropq_test(struct user_namespace *h_userns, struct path *h_path)
++int au_diropq_test(struct mnt_idmap *h_idmap, struct path *h_path)
+{
+ int err;
+ struct inode *h_dir;
+
+ h_dir = d_inode(h_path->dentry);
-+ err = au_wh_test(h_userns, h_path, &diropq_name,
-+ au_test_h_perm_sio(h_userns, h_dir, MAY_EXEC));
++ err = au_wh_test(h_idmap, h_path, &diropq_name,
++ au_test_h_perm_sio(h_idmap, h_dir, MAY_EXEC));
+ return err;
+}
+
@@ -35252,7 +35235,7 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
+ static unsigned short cnt;
+ struct qstr qs;
+ struct path h_ppath;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+
+ BUILD_BUG_ON(sizeof(cnt) * 2 > AUFS_WH_TMP_LEN);
+
@@ -35278,11 +35261,11 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
+
+ h_ppath.dentry = h_parent;
+ h_ppath.mnt = au_br_mnt(br);
-+ h_userns = au_br_userns(br);
++ h_idmap = au_br_idmap(br);
+ qs.name = name;
+ for (i = 0; i < 3; i++) {
+ sprintf(p, "%.*x", AUFS_WH_TMP_LEN, cnt++);
-+ dentry = au_sio_lkup_one(h_userns, &qs, &h_ppath);
++ dentry = au_sio_lkup_one(h_idmap, &qs, &h_ppath);
+ if (IS_ERR(dentry) || d_is_negative(dentry))
+ goto out_name;
+ dput(dentry);
@@ -35879,11 +35862,11 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
+ unsigned int flags)
+{
+ struct dentry *diropq, *h_dentry;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+
-+ h_userns = au_sbr_userns(dentry->d_sb, bindex);
++ h_idmap = au_sbr_idmap(dentry->d_sb, bindex);
+ h_dentry = au_h_dptr(dentry, bindex);
-+ if (!au_test_h_perm_sio(h_userns, d_inode(h_dentry),
++ if (!au_test_h_perm_sio(h_idmap, d_inode(h_dentry),
+ MAY_EXEC | MAY_WRITE))
+ diropq = do_diropq(dentry, bindex, flags);
+ else {
@@ -36072,7 +36055,7 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
+ struct path wh_path;
+ struct inode *wh_inode, *h_dir;
+ struct au_branch *br;
-+ struct user_namespace *h_userns;
++ struct mnt_idmap *h_idmap;
+
+ h_dir = d_inode(wh_dentry->d_parent); /* dir inode is locked */
+ IMustLock(h_dir);
@@ -36080,7 +36063,7 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
+ br = au_sbr(dir->i_sb, bindex);
+ wh_path.dentry = wh_dentry;
+ wh_path.mnt = au_br_mnt(br);
-+ h_userns = au_br_userns(br);
++ h_idmap = au_br_idmap(br);
+ wh_inode = d_inode(wh_dentry);
+ inode_lock_nested(wh_inode, AuLsc_I_CHILD);
+
@@ -36088,7 +36071,7 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
+ * someone else might change some whiteouts while we were sleeping.
+ * it means this whlist may have an obsoleted entry.
+ */
-+ if (!au_test_h_perm_sio(h_userns, wh_inode, MAY_EXEC | MAY_WRITE))
++ if (!au_test_h_perm_sio(h_idmap, wh_inode, MAY_EXEC | MAY_WRITE))
+ err = del_wh_children(&wh_path, whlist, bindex);
+ else {
+ int wkq_err;
@@ -36197,7 +36180,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/whout.h 2023-04-24 08:13:40.972909448 +0200
@@ -0,0 +1,87 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -36230,9 +36213,9 @@ diff -urN /usr/share/empty/fs/aufs/whout.h linux/fs/aufs/whout.h
+
+/* whout.c */
+int au_wh_name_alloc(struct qstr *wh, const struct qstr *name);
-+int au_wh_test(struct user_namespace *h_userns, struct path *h_ppath,
++int au_wh_test(struct mnt_idmap *h_idmap, struct path *h_ppath,
+ struct qstr *wh_name, int try_sio);
-+int au_diropq_test(struct user_namespace *h_userns, struct path *h_path);
++int au_diropq_test(struct mnt_idmap *h_idmap, struct path *h_path);
+struct au_branch;
+struct dentry *au_whtmp_lkup(struct dentry *h_parent, struct au_branch *br,
+ struct qstr *prefix);
@@ -36288,7 +36271,7 @@ 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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/wkq.c 2022-11-05 23:02:18.972555950 +0100
@@ -0,0 +1,372 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -36664,7 +36647,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/wkq.h 2022-11-05 23:02:18.972555950 +0100
@@ -0,0 +1,89 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -36757,7 +36740,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/xattr.c 2023-04-24 08:13:40.972909448 +0200
@@ -0,0 +1,365 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -36833,14 +36816,14 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
+ ssize_t ssz;
+ struct inode *h_idst;
+ struct dentry *h_dst_dentry, *h_src_dentry;
-+ struct user_namespace *h_dst_userns, *h_src_userns;
++ struct mnt_idmap *h_dst_idmap, *h_src_idmap;
+ struct posix_acl *acl;
+
+ is_acl = !!is_posix_acl_xattr(name);
-+ h_src_userns = mnt_user_ns(h_src->mnt);
++ h_src_idmap = mnt_idmap(h_src->mnt);
+ h_src_dentry = h_src->dentry;
+ if (is_acl) {
-+ acl = vfs_get_acl(h_src_userns, h_src_dentry, name);
++ acl = vfs_get_acl(h_src_idmap, h_src_dentry, name);
+ AuDebugOn(!acl);
+ if (unlikely(IS_ERR(acl))) {
+ err = PTR_ERR(acl);
@@ -36854,7 +36837,7 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
+ goto out;
+ }
+ } else {
-+ ssz = vfs_getxattr_alloc(h_src_userns, h_src_dentry, name, buf,
++ ssz = vfs_getxattr_alloc(h_src_idmap, h_src_dentry, name, buf,
+ 0, GFP_NOFS);
+ if (unlikely(ssz <= 0)) {
+ err = ssz;
@@ -36870,15 +36853,15 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
+ }
+
+ /* unlock it temporary */
-+ h_dst_userns = mnt_user_ns(h_dst->mnt);
++ h_dst_idmap = mnt_idmap(h_dst->mnt);
+ h_dst_dentry = h_dst->dentry;
+ h_idst = d_inode(h_dst_dentry);
+ inode_unlock(h_idst);
+ if (is_acl) {
-+ err = vfsub_set_acl(h_dst_userns, h_dst_dentry, name, acl);
++ err = vfsub_set_acl(h_dst_idmap, h_dst_dentry, name, acl);
+ posix_acl_release(acl);
+ } else
-+ err = vfsub_setxattr(h_dst_userns, h_dst_dentry, name, *buf,
++ err = vfsub_setxattr(h_dst_idmap, h_dst_dentry, name, *buf,
+ ssz, /*flags*/0);
+ inode_lock_nested(h_idst, AuLsc_I_CHILD2);
+ if (unlikely(err)) {
@@ -37024,7 +37007,7 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
+ break;
+ case AU_XATTR_GET:
+ AuDebugOn(d_is_negative(h_path.dentry));
-+ err = vfs_getxattr(mnt_user_ns(h_path.mnt), h_path.dentry,
++ err = vfs_getxattr(mnt_idmap(h_path.mnt), h_path.dentry,
+ arg->u.get.name, arg->u.get.value,
+ arg->u.get.size);
+ break;
@@ -37096,7 +37079,7 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
+}
+
+static int au_xattr_set(const struct xattr_handler *handler,
-+ struct user_namespace *userns,
++ struct mnt_idmap *idmap,
+ struct dentry *dentry, struct inode *inode,
+ const char *name, const void *value, size_t size,
+ int flags)
@@ -37126,7 +37109,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/fs/aufs/xino.c 2023-04-24 08:13:40.972909448 +0200
@@ -0,0 +1,1926 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -37389,7 +37372,7 @@ diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
+ }
+
+ /* no need to mnt_want_write() since we call dentry_open() later */
-+ err = vfs_create(mnt_user_ns(base->mnt), dir, path.dentry, 0666, NULL);
++ err = vfs_create(mnt_idmap(base->mnt), dir, path.dentry, 0666, NULL);
+ if (unlikely(err)) {
+ file = ERR_PTR(err);
+ pr_err("%pd create err %d\n", dentry, err);
@@ -39056,7 +39039,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 2023-04-07 12:29:13.129715729 +0200
++++ linux/include/uapi/linux/aufs_type.h 2023-04-24 08:13:40.972909448 +0200
@@ -0,0 +1,452 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
@@ -39100,7 +39083,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.2-20230227"
++#define AUFS_VERSION "6.x-rcN-20230313"
+
+/* todo? move this to linux-2.6.19/include/magic.h */
+#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
@@ -39511,10 +39494,10 @@ 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.2 loopback patch
+aufs6.x-rcN loopback patch
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 7a9928c6db9d..0bac486deea2 100644
+index 463edc7c1633..9bd631fc90b8 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -54,7 +54,7 @@ struct loop_device {
@@ -39736,10 +39719,10 @@ index 81922d4faf54..c8a62c267d72 100644
/* ---------------------------------------------------------------------- */
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index ec560e8704a4..fc6e4d469419 100644
+index d676c6742cc2..64e43f62fb43 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
-@@ -2255,6 +2255,10 @@ struct super_operations {
+@@ -1917,6 +1917,10 @@ struct super_operations {
struct shrink_control *);
long (*free_cached_objects)(struct super_block *,
struct shrink_control *);
diff --git a/kernel-multiarch.config b/kernel-multiarch.config
index 931a09b7..f507a317 100644
--- a/kernel-multiarch.config
+++ b/kernel-multiarch.config
@@ -21,7 +21,9 @@ CRYPTO_AES_ARM64_NEON_BLK arm64=m
CRYPTO_AES_ARM_BS arm=m
CRYPTO_AES_ARM_CE arm=m
CRYPTO_AES_NI_INTEL all=m
+CRYPTO_ARIA_AESNI_AVX2_X86_64 all=m
CRYPTO_ARIA_AESNI_AVX_X86_64 all=m
+CRYPTO_ARIA_GFNI_AVX512_X86_64 all=m
CRYPTO_BLAKE2B_NEON arm=m
CRYPTO_BLAKE2S_ARM arm=y
CRYPTO_BLAKE2S_X86 x86_64=y
@@ -353,6 +355,18 @@ FIPS_SIGNATURE_SELFTEST all=y
#- *** FILE: drivers/accel/Kconfig ***
#-
DRM_ACCEL all=y
+#- file drivers/accel/habanalabs/Kconfig goes here
+#- file drivers/accel/ivpu/Kconfig goes here
+
+#-
+#- *** FILE: drivers/accel/habanalabs/Kconfig ***
+#-
+DRM_ACCEL_HABANALABS all=m
+
+#-
+#- *** FILE: drivers/accel/ivpu/Kconfig ***
+#-
+DRM_ACCEL_IVPU all=m
#-
#- *** FILE: drivers/accessibility/Kconfig ***
@@ -571,11 +585,33 @@ PATA_OF_PLATFORM arm=m arm64=m ppc=m ppc64=m
PATA_QDI alpha=m i386=m
PATA_RZ1000 all=m sparc=n
PATA_WINBOND_VLB all=m sparc=n
+PATA_PARPORT all=m
+#- file drivers/ata/pata_parport/Kconfig goes here
#- Generic fallback / legacy drivers
PATA_ACPI arm64=m i386=m ia64=m x86_64=m
ATA_GENERIC all=m sparc=n
PATA_LEGACY all=m
+#-
+#- *** FILE: drivers/ata/pata_parport/Kconfig ***
+#-
+#- Parallel IDE protocol modules
+PATA_PARPORT_ATEN all=m
+PATA_PARPORT_BPCK all=m
+PATA_PARPORT_COMM all=m
+PATA_PARPORT_DSTR all=m
+PATA_PARPORT_FIT2 all=m
+PATA_PARPORT_FIT3 all=m
+PATA_PARPORT_EPAT all=m
+PATA_PARPORT_EPATC8 all=y
+PATA_PARPORT_EPIA all=m
+PATA_PARPORT_FRIQ all=m
+PATA_PARPORT_FRPW all=m
+PATA_PARPORT_KBIC all=m
+PATA_PARPORT_KTTI all=m
+PATA_PARPORT_ON20 all=m
+PATA_PARPORT_ON26 all=m
+
#-
#- *** FILE: drivers/atm/Kconfig ***
#-
@@ -688,8 +724,6 @@ BLK_DEV all=y
BLK_DEV_FD all=m sparc=y
BLK_DEV_FD_RAWCMD all=n
MAC_FLOPPY ppc=m
-PARIDE all=m
-#- file drivers/block/paride/Kconfig goes here
#- file drivers/block/mtip32xx/Kconfig goes here
#- file drivers/block/zram/Kconfig goes here
BLK_DEV_COW_COMMON all=n
@@ -730,33 +764,6 @@ BLK_DEV_PCIESSD_MTIP32XX all=m
#-
BLK_DEV_NULL_BLK all=m
-#-
-#- *** FILE: drivers/block/paride/Kconfig ***
-#-
-#- Parallel IDE high-level drivers
-PARIDE_PD all=m
-PARIDE_PCD all=m
-PARIDE_PF all=m
-PARIDE_PT all=m
-PARIDE_PG all=m
-#- Parallel IDE protocol modules
-PARIDE_ATEN all=m
-PARIDE_BPCK all=m
-PARIDE_BPCK6 arm=n i386=m ppc=n
-PARIDE_COMM all=m
-PARIDE_DSTR all=m
-PARIDE_FIT2 all=m
-PARIDE_FIT3 all=m
-PARIDE_EPAT all=m
-PARIDE_EPATC8 all=y
-PARIDE_EPIA all=m
-PARIDE_FRIQ all=m
-PARIDE_FRPW all=m
-PARIDE_KBIC all=m
-PARIDE_KTTI all=m
-PARIDE_ON20 all=m
-PARIDE_ON26 all=m
-
#-
#- *** FILE: drivers/block/rnbd/Kconfig ***
#-
@@ -1262,10 +1269,10 @@ PROC_EVENTS all=y
#-
COUNTER all=m
104_QUAD_8 all=m
-INTERRUPT_CNT all=m
FTM_QUADDEC arm=m arm64=m
-MICROCHIP_TCB_CAPTURE arm=m arm64=m
INTEL_QEP=m
+INTERRUPT_CNT all=m
+MICROCHIP_TCB_CAPTURE arm=m arm64=m
#-
#- *** FILE: drivers/cpufreq/Kconfig ***
@@ -1326,7 +1333,6 @@ CRYPTO_DEV_HIFN_795X_RNG all=y
#- file drivers/crypto/caam/Kconfig goes here
CRYPTO_DEV_TALITOS all=m
#- file drivers/crypto/nx/Kconfig goes here
-#- file drivers/crypto/ux500/Kconfig goes here
CRYPTO_DEV_ATMEL_ECC all=m
CRYPTO_DEV_ATMEL_SHA204A all=m
CRYPTO_DEV_CCP all=y
@@ -1413,6 +1419,7 @@ CXL_MEM_RAW_COMMANDS all=y
CXL_ACPI=m
CXL_PMEM=m
CXL_MEM all=m
+CXL_REGION all=y
CXL_REGION_INVALIDATION_TEST all=n
#-
@@ -1422,6 +1429,7 @@ DAX arm=m i686=m
DEV_DAX all=m
DEV_DAX_PMEM all=m
DEV_DAX_HMEM all=m
+DEV_DAX_CXL all=m
DEV_DAX_KMEM all=m
#-
@@ -1493,6 +1501,7 @@ PL330_DMA arm=m arm64=m
PLX_DMA all=m
TIMB_DMA all=m
XILINX_DMA arm64=m
+XILINX_XDMA all=m
XILINX_ZYNQMP_DMA arm64=m
XILINX_ZYNQMP_DPDMA all=m
#- file drivers/dma/bestcomm/Kconfig goes here
@@ -1700,7 +1709,6 @@ GOOGLE_FIRMWARE all=y
GOOGLE_SMI all=m
GOOGLE_CBMEM all=m
GOOGLE_COREBOOT_TABLE all=m
-GOOGLE_COREBOOT_TABLE_ACPI all=m
GOOGLE_MEMCONSOLE all=m
GOOGLE_MEMCONSOLE_X86_LEGACY all=m
GOOGLE_FRAMEBUFFER_COREBOOT all=m
@@ -1852,7 +1860,6 @@ GPIO_TPS65912 all=m
GPIO_TPS68470 all=m
GPIO_TQMX86 all=m
GPIO_TWL4030 powerpc=m
-GPIO_UCB1400 all=m
GPIO_WHISKEY_COVE all=m
GPIO_WM831X all=m
GPIO_WM8994 all=m
@@ -1945,13 +1952,6 @@ DRM_VKMS all=m
#- file drivers/gpu/drm/sprd/Kconfig goes here
DRM_HYPERV=m
DRM_LEGACY all=y
-DRM_TDFX all=m
-DRM_R128 all=m
-DRM_I810 i386=m x86_64=m
-DRM_MGA all=m
-DRM_SIS all=m
-DRM_VIA all=m
-DRM_SAVAGE all=m
#-
#- *** FILE: drivers/gpu/drm/amd/acp/Kconfig ***
@@ -2015,7 +2015,6 @@ DRM_ATMEL_HLCDC arm=m
#-
#- *** FILE: drivers/gpu/drm/bridge/Kconfig ***
#-
-DRM_CDNS_DSI arm=m arm64=m
DRM_CHIPONE_ICN6211 arm=m arm64=m
DRM_CHRONTEL_CH7033 arm=m arm64=m
DRM_CROS_EC_ANX7688 arm=m arm64=m
@@ -2071,6 +2070,7 @@ DRM_ANALOGIX_ANX7625 arm=m arm64=m
#-
#- *** FILE: drivers/gpu/drm/bridge/cadence/Kconfig ***
#-
+DRM_CDNS_DSI arm=m arm64=m
DRM_CDNS_MHDP8546 arm=m arm64=m
#-
@@ -2160,14 +2160,13 @@ DRM_I915_PXP all=y
DRM_I915_GVT all=y
#-
-#- *** FILE: drivers/gpu/drm/imx/Kconfig ***
+#- *** FILE: drivers/gpu/drm/imx/ipuv3/Kconfig ***
#-
DRM_IMX arm=m
DRM_IMX_PARALLEL_DISPLAY arm=m
DRM_IMX_TVE arm=m
DRM_IMX_LDB arm=m
DRM_IMX_HDMI arm=m
-#- file drivers/gpu/drm/imx/dcss/Kconfig goes here
#-
#- *** FILE: drivers/gpu/drm/lima/Kconfig ***
@@ -2205,7 +2204,6 @@ DRM_IMX_LCDIF arm=m arm64=m
#- *** FILE: drivers/gpu/drm/nouveau/Kconfig ***
#-
DRM_NOUVEAU all=m
-NOUVEAU_LEGACY_CTX_SUPPORT all=y
NOUVEAU_DEBUG all=5
NOUVEAU_DEBUG_DEFAULT all=3
NOUVEAU_DEBUG_MMU all=n
@@ -2235,6 +2233,7 @@ OMAP2_DSS_SLEEP_AFTER_VENC_RESET arm=y
DRM_PANEL_ABT_Y030XX067A arm=m arm64=m
DRM_PANEL_ARM_VERSATILE arm=m arm64=m
DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 arm=m arm64=m
+DRM_PANEL_AUO_A030JTN01 all=m
DRM_PANEL_BOE_BF060Y8M_AJ0 arm=m arm64=m
DRM_PANEL_BOE_HIMAX8279D arm=m arm64=m
DRM_PANEL_BOE_TV101WUM_NL6 arm=m arm64=m
@@ -2271,6 +2270,7 @@ DRM_PANEL_NOVATEK_NT36672A arm=m arm64=m
DRM_PANEL_NOVATEK_NT39016 arm=m arm64=m
DRM_PANEL_MANTIX_MLAF057WE51 arm=m arm64=m
DRM_PANEL_OLIMEX_LCD_OLINUXINO arm=m arm64=m
+DRM_PANEL_ORISETECH_OTA5601A all=m
DRM_PANEL_ORISETECH_OTM8009A arm=m arm64=m
DRM_PANEL_OSD_OSD101T2587_53TS arm=m arm64=m
DRM_PANEL_PANASONIC_VVX10F034N00 arm=m arm64=m
@@ -2463,6 +2463,7 @@ GREYBUS_ES2 all=m
#-
#- *** FILE: drivers/hid/Kconfig ***
#-
+HID_SUPPORT all=y
HID all=m
HID_BATTERY_STRENGTH all=y
HIDRAW all=y
@@ -2495,6 +2496,7 @@ HID_EMS_FF all=m
HID_ELAN all=m
HID_ELECOM all=m
HID_ELO all=m
+HID_EVISION all=m
HID_EZKEY all=m
HID_FT260 all=m
HID_GEMBIRD all=m
@@ -2567,6 +2569,7 @@ HID_SONY all=m
SONY_FF all=y
HID_SPEEDLINK all=m
HID_STEAM all=m
+STEAM_FF all=y
HID_STEELSERIES all=m
HID_SUNPLUS all=m
HID_RMI all=m
@@ -2593,6 +2596,7 @@ HID_SENSOR_HUB all=m
HID_SENSOR_CUSTOM_SENSOR all=m
HID_ALPS all=m
HID_MCP2221 all=m
+#- file drivers/hid/bpf/Kconfig goes here
#- file drivers/hid/usbhid/Kconfig goes here
#- file drivers/hid/i2c-hid/Kconfig goes here
#- file drivers/hid/intel-ish-hid/Kconfig goes here
@@ -2604,9 +2608,15 @@ HID_MCP2221 all=m
#-
AMD_SFH_HID all=m
+#-
+#- *** FILE: drivers/hid/bpf/Kconfig ***
+#-
+HID_BPF all=y
+
#-
#- *** FILE: drivers/hid/i2c-hid/Kconfig ***
#-
+I2C_HID all=m
I2C_HID_ACPI all=m
I2C_HID_OF arm=m arm64=m
I2C_HID_OF_ELAN arm=m arm64=m
@@ -2756,6 +2766,7 @@ SENSORS_MAX6642 all=m
SENSORS_MAX6650 all=m
SENSORS_MAX6697 all=m
SENSORS_MAX31790 all=m
+SENSORS_MC34VR500 all=m
SENSORS_MCP3021 all=m
SENSORS_MLXREG_FAN all=m
SENSORS_TC654 all=m
@@ -2912,6 +2923,8 @@ SENSORS_MAX8688 all=m
SENSORS_MP2888=m
SENSORS_MP2975 all=m
SENSORS_MP5023 all=m
+SENSORS_MPQ7932_REGULATOR all=y
+SENSORS_MPQ7932 all=m
SENSORS_PIM4328=m
SENSORS_PLI1209BC all=m
SENSORS_PLI1209BC_REGULATOR all=y
@@ -2919,6 +2932,8 @@ SENSORS_PM6764TR all=m
SENSORS_PXE1610 all=m
SENSORS_Q54SJ108A2 all=m
SENSORS_STPDDC60 all=m
+SENSORS_TDA38640 all=m
+SENSORS_TDA38640_REGULATOR all=y
SENSORS_TPS40422 all=m
SENSORS_TPS53679 all=m
SENSORS_TPS546D24 all=m
@@ -3272,12 +3287,14 @@ TI_ADC108S102 all=m
TI_ADC128S052 all=m
TI_ADC161S626 all=m
TI_ADS1015 all=m
+TI_ADS7924 all=m
TI_ADS7950 all=m
TI_ADS8344 all=m
TI_ADS8688 all=m
TI_ADS124S08 all=m
TI_ADS131E08 all=m
TI_AM335X_ADC all=m
+TI_LMP92064 all=m
TI_TLC4541 all=m
TI_TSC2046=m
VF610_ADC all=m
@@ -3387,6 +3404,7 @@ LTC1660 all=m
LTC2632 all=m
M62332 all=m
MAX517 all=m
+MAX5522 all=m
MAX5821 all=m
MCP4725 all=m
MCP4922 all=m
@@ -3590,6 +3608,7 @@ SENSORS_HMC5843_I2C all=m
SENSORS_HMC5843_SPI all=m
SENSORS_RM3100_I2C all=m
SENSORS_RM3100_SPI all=m
+TI_TMAG5273 all=m
YAMAHA_YAS530 all=m
#-
@@ -4225,7 +4244,6 @@ TOUCHSCREEN_RASPBERRYPI_FW arm=m
TOUCHSCREEN_TOUCHRIGHT all=m
TOUCHSCREEN_TOUCHWIN all=m
TOUCHSCREEN_TI_AM335X_TSC all=m
-TOUCHSCREEN_UCB1400 all=m sparc=n
TOUCHSCREEN_PIXCIR all=m
TOUCHSCREEN_WDT87XX_I2C all=m
TOUCHSCREEN_WM831X all=m
@@ -4322,6 +4340,7 @@ INTEL_IOMMU all=y
INTEL_IOMMU_SVM all=y
INTEL_IOMMU_DEFAULT_ON all=y
INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON all=y
+INTEL_IOMMU_PERF_EVENTS all=y
#-
#- *** FILE: drivers/iommu/iommufd/Kconfig ***
@@ -4706,6 +4725,7 @@ USB_RAINSHADOW_CEC all=m
VIDEO_CX2341X all=m
VIDEO_TVEEPROM all=m
#- file drivers/media/common/b2c2/Kconfig goes here
+#- file drivers/media/common/saa7146/Kconfig goes here
#- file drivers/media/common/siano/Kconfig goes here
#- file drivers/media/common/v4l2-tpg/Kconfig goes here
#- file drivers/media/common/videobuf2/Kconfig goes here
@@ -4716,6 +4736,12 @@ VIDEO_TVEEPROM all=m
DVB_B2C2_FLEXCOP all=m
DVB_B2C2_FLEXCOP_DEBUG all=n
+#-
+#- *** FILE: drivers/media/common/saa7146/Kconfig ***
+#-
+VIDEO_SAA7146 all=m
+VIDEO_SAA7146_VV all=m
+
#-
#- *** FILE: drivers/media/common/siano/Kconfig ***
#-
@@ -4829,6 +4855,7 @@ VIDEO_IMX219 all=m
VIDEO_IMX258 all=m
VIDEO_IMX274 all=m
VIDEO_IMX290 all=m
+VIDEO_IMX296 all=m
VIDEO_IMX319 all=m
VIDEO_IMX334 arm=m arm64=m
VIDEO_IMX335 arm=m arm64=m
@@ -4871,6 +4898,7 @@ VIDEO_OV7670 all=m
VIDEO_OV772X all=m
VIDEO_OV7740 all=m
VIDEO_OV8856 all=m
+VIDEO_OV8858 all=m
VIDEO_OV8865 all=m
VIDEO_OV9282 arm=m arm64=m
VIDEO_OV9640 all=m
@@ -4971,6 +4999,7 @@ MEDIA_PCI_SUPPORT all=y
#- Media capture/analog TV support
#- file drivers/media/pci/dt3155/Kconfig goes here
#- file drivers/media/pci/ivtv/Kconfig goes here
+#- file drivers/media/pci/saa7146/Kconfig goes here
#- Media capture/analog/hybrid TV support
#- file drivers/media/pci/bt8xx/Kconfig goes here
#- file drivers/media/pci/cobalt/Kconfig goes here
@@ -4991,6 +5020,7 @@ MEDIA_PCI_SUPPORT all=y
#- file drivers/media/pci/pt1/Kconfig goes here
#- file drivers/media/pci/pt3/Kconfig goes here
#- file drivers/media/pci/smipcie/Kconfig goes here
+#- file drivers/media/pci/ttpci/Kconfig goes here
VIDEO_PCI_SKELETON all=m
#- file drivers/media/pci/intel/ipu3/Kconfig goes here
@@ -5110,6 +5140,13 @@ VIDEO_SAA7134_RC all=y
VIDEO_SAA7134_DVB all=m sparc64=n
VIDEO_SAA7134_GO7007 all=m
+#-
+#- *** FILE: drivers/media/pci/saa7146/Kconfig ***
+#-
+VIDEO_HEXIUM_GEMINI all=m
+VIDEO_HEXIUM_ORION all=m
+VIDEO_MXB all=m sparc=n
+
#-
#- *** FILE: drivers/media/pci/saa7164/Kconfig ***
#-
@@ -5130,6 +5167,14 @@ VIDEO_SOLO6X10 all=m
#-
STA2X11_VIP all=m
+#-
+#- *** FILE: drivers/media/pci/ttpci/Kconfig ***
+#-
+DVB_BUDGET_CORE all=m
+DVB_BUDGET all=m sparc=n
+DVB_BUDGET_CI all=m sparc=n
+DVB_BUDGET_AV all=m sparc=n
+
#-
#- *** FILE: drivers/media/pci/tw5864/Kconfig ***
#-
@@ -5755,7 +5800,6 @@ MFD_CS47L35 all=y
MFD_CS47L85 all=y
MFD_CS47L90 all=y
MFD_CS47L92 all=y
-MFD_ASIC3 arm=n
PMIC_DA903X powerpc=y
MFD_DA9052_SPI all=y
MFD_DA9062 all=m
@@ -5770,7 +5814,6 @@ MFD_MC13XXX_I2C all=m
MFD_MP2629 all=m
MFD_HI6421_PMIC arm=m arm64=m
MFD_HI6421_SPMI arm=m arm64=m
-HTC_PASIC3 all=m
MFD_INTEL_QUARK_I2C_GPIO all=m
LPC_ICH all=m
LPC_SCH all=m
@@ -5804,7 +5847,6 @@ MFD_RETU all=m
MFD_PCF50633 all=m
PCF50633_ADC all=m
PCF50633_GPIO all=m
-UCB1400_CORE all=m
MFD_PM8XXX arm=m
MFD_SY7636A all=m
MFD_RDC321X all=m
@@ -5842,9 +5884,6 @@ TWL4030_CORE powerpc=y
MFD_WL1273_CORE all=m
MFD_LM3533 all=m
MFD_TIMBERDALE all=m
-MFD_T7L66XB arm=n
-MFD_TC6387XB arm=n
-MFD_TC6393XB arm=n
MFD_TQMX86 all=m
MFD_VX855 all=m
MFD_ARIZONA_I2C all=m
@@ -5865,7 +5904,8 @@ MFD_KHADAS_MCU arm64=m
MFD_QCOM_PM8008 arm=m arm64=m
MFD_VEXPRESS_SYSREG arm=m arm64=m
RAVE_SP_CORE all=m
-MFD_INTEL_M10_BMC all=m
+MFD_INTEL_M10_BMC_SPI all=m
+MFD_INTEL_M10_BMC_PMCI all=m
MFD_RSMU_I2C arm=m arm64=m
MFD_RSMU_SPI arm=m arm64=m
@@ -5925,7 +5965,6 @@ VCPU_STALL_DETECTOR arm=m arm64=m
#- file drivers/misc/ocxl/Kconfig goes here
#- file drivers/misc/bcm-vk/Kconfig goes here
#- file drivers/misc/cardreader/Kconfig goes here
-#- file drivers/misc/habanalabs/Kconfig goes here
#- file drivers/misc/uacce/Kconfig goes here
#- file drivers/misc/pvpanic/Kconfig goes here
#- file drivers/misc/mchp_pci1xxxx/Kconfig goes here
@@ -5984,11 +6023,6 @@ EEPROM_EE1004 all=m
GENWQE all=m
GENWQE_PLATFORM_ERROR_RECOVERY all=0
-#-
-#- *** FILE: drivers/misc/habanalabs/Kconfig ***
-#-
-HABANA_AI all=m
-
#-
#- *** FILE: drivers/misc/lis3lv02d/Kconfig ***
#-
@@ -6429,7 +6463,7 @@ XEN_NETDEV_FRONTEND all=m
XEN_NETDEV_BACKEND all=m
VMXNET3 all=m
FUJITSU_ES all=m
-USB4_NET all=m
+#- file drivers/net/thunderbolt/Kconfig goes here
#- file drivers/net/hyperv/Kconfig goes here
NETDEVSIM all=m
NET_FAILOVER all=m
@@ -6633,6 +6667,7 @@ NET_DSA_HIRSCHMANN_HELLCREEK all=m
NET_DSA_MICROCHIP_KSZ_COMMON all=m
NET_DSA_MICROCHIP_KSZ9477_I2C all=m
NET_DSA_MICROCHIP_KSZ_SPI all=m
+NET_DSA_MICROCHIP_KSZ_PTP all=y
NET_DSA_MICROCHIP_KSZ8863_SMI all=m
#-
@@ -6644,6 +6679,7 @@ NET_DSA_MV88E6XXX_PTP all=y
#-
#- *** FILE: drivers/net/dsa/ocelot/Kconfig ***
#-
+NET_DSA_MSCC_OCELOT_EXT all=m
NET_DSA_MSCC_FELIX all=m
NET_DSA_MSCC_SEVILLE all=m
@@ -7749,6 +7785,7 @@ MOTORCOMM_PHY=m
NATIONAL_PHY all=m
NXP_C45_TJA11XX_PHY all=m
NXP_TJA11XX_PHY all=m
+NCN26000_PHY all=m
AT803X_PHY all=m
QSEMI_PHY all=m
REALTEK_PHY all=m
@@ -7813,6 +7850,11 @@ NET_TEAM_MODE_RANDOM all=m
NET_TEAM_MODE_ACTIVEBACKUP all=m
NET_TEAM_MODE_LOADBALANCE all=m
+#-
+#- *** FILE: drivers/net/thunderbolt/Kconfig ***
+#-
+USB4_NET all=m
+
#-
#- *** FILE: drivers/net/usb/Kconfig ***
#-
@@ -7932,6 +7974,7 @@ ATH_DEBUG all=n
#- file drivers/net/wireless/ath/ath10k/Kconfig goes here
#- file drivers/net/wireless/ath/wcn36xx/Kconfig goes here
#- file drivers/net/wireless/ath/ath11k/Kconfig goes here
+#- file drivers/net/wireless/ath/ath12k/Kconfig goes here
#-
#- *** FILE: drivers/net/wireless/ath/ar5523/Kconfig ***
@@ -7959,6 +8002,13 @@ ATH11K_PCI all=m
ATH11K_DEBUG all=n
ATH11K_TRACING all=n
+#-
+#- *** FILE: drivers/net/wireless/ath/ath12k/Kconfig ***
+#-
+ATH12K all=m
+ATH12K_DEBUG all=n
+ATH12K_TRACING all=n
+
#-
#- *** FILE: drivers/net/wireless/ath/ath5k/Kconfig ***
#-
@@ -8665,7 +8715,6 @@ PARPORT_PC_SUPERIO all=y
PARPORT_PC_PCMCIA all=m
PARPORT_GSC all=n
PARPORT_SUNBPP sparc=m sparc64=m
-PARPORT_AX88796 all=m
PARPORT_1284 all=y ia64=n
PARPORT_NOT_PC all=y
@@ -9098,6 +9147,7 @@ CROS_EC_I2C all=m
CROS_EC_RPMSG arm=m arm64=m
CROS_EC_ISHTP all=m
CROS_EC_SPI all=m
+CROS_EC_UART all=m
CROS_EC_LPC all=m
CROS_KBD_LED_BACKLIGHT all=m
CROS_EC_CHARDEV all=m
@@ -9307,6 +9357,7 @@ INTEL_PUNIT_IPC all=m
INTEL_RST all=m
INTEL_SDSI all=m
INTEL_SMARTCONNECT all=m
+INTEL_TPMI all=m
INTEL_TURBO_MAX_3 all=y
INTEL_VSEC all=m
@@ -9421,7 +9472,6 @@ POWER_MLXBF arm64=m
#* ACPI_SYSFS_POWER selects POWER_SUPPLY=y
POWER_SUPPLY all=m arm=y arm64=y i386=y ia64=y x86_64=y
POWER_SUPPLY_DEBUG all=n
-PDA_POWER all=m
APM_POWER arm=m ppc=m
GENERIC_ADC_BATTERY all=m
IP5XXX_POWER all=m
@@ -9491,6 +9541,8 @@ AB8500_BM all=n
BATTERY_GOLDFISH all=m
BATTERY_RT5033 all=m
CHARGER_RT9455 all=m
+CHARGER_RT9467 all=m
+CHARGER_RT9471 all=m
CHARGER_CROS_USBPD all=m
CHARGER_CROS_PCHG all=m
CHARGER_UCS1002 arm=m arm64=m
@@ -9649,6 +9701,7 @@ REGULATOR_MAX8907 all=m
REGULATOR_MAX8952 all=m
REGULATOR_MAX8973 all=m
REGULATOR_MAX20086 all=m
+REGULATOR_MAX20411 all=m
REGULATOR_MAX77686 arm=m arm64=m
REGULATOR_MAX77693 all=m
REGULATOR_MAX77802 arm=m arm64=m
@@ -9861,7 +9914,6 @@ RTC_DRV_M48T59 all=m sparc=y
RTC_DRV_MSM6242 all=m
RTC_DRV_BQ4802 all=m sparc64=y
RTC_DRV_RP5C01 all=m
-RTC_DRV_V3020 all=m
RTC_DRV_WM831X all=m
RTC_DRV_WM8350 all=m
RTC_DRV_PCF50633 all=m
@@ -10244,6 +10296,11 @@ IXP4XX_NPE all=m
#-
LITEX_SOC_CONTROLLER arm=m arm64=m
+#-
+#- *** FILE: drivers/soc/nuvoton/Kconfig ***
+#-
+WPCM450_SOC all=m
+
#-
#- *** FILE: drivers/soc/qcom/Kconfig ***
#-
@@ -10362,7 +10419,6 @@ STAGING all=y
#- file drivers/staging/rtl8192e/Kconfig goes here
#- file drivers/staging/rtl8723bs/Kconfig goes here
#- file drivers/staging/rtl8712/Kconfig goes here
-#- file drivers/staging/r8188eu/Kconfig goes here
#- file drivers/staging/rts5208/Kconfig goes here
#- file drivers/staging/octeon/Kconfig goes here
#- file drivers/staging/vt6655/Kconfig goes here
@@ -10523,6 +10579,7 @@ KS7010 all=m
#-
STAGING_MEDIA all=y
#- file drivers/staging/media/atomisp/Kconfig goes here
+#- file drivers/staging/media/av7110/Kconfig goes here
#- file drivers/staging/media/imx/Kconfig goes here
#- file drivers/staging/media/ipu3/Kconfig goes here
#- file drivers/staging/media/max96712/Kconfig goes here
@@ -10533,14 +10590,6 @@ STAGING_MEDIA all=y
#- file drivers/staging/media/tegra-video/Kconfig goes here
STAGING_MEDIA_DEPRECATED all=n
#- file drivers/staging/media/deprecated/atmel/Kconfig goes here
-#- file drivers/staging/media/deprecated/cpia2/Kconfig goes here
-#- file drivers/staging/media/deprecated/fsl-viu/Kconfig goes here
-#- file drivers/staging/media/deprecated/meye/Kconfig goes here
-#- file drivers/staging/media/deprecated/saa7146/Kconfig goes here
-#- file drivers/staging/media/deprecated/stkwebcam/Kconfig goes here
-#- file drivers/staging/media/deprecated/tm6000/Kconfig goes here
-#- file drivers/staging/media/deprecated/vpfe_capture/Kconfig goes here
-#- file drivers/staging/media/deprecated/zr364xx/Kconfig goes here
#-
#- *** FILE: drivers/staging/media/atomisp/Kconfig ***
@@ -10563,61 +10612,13 @@ VIDEO_ATOMISP_OV5693 all=m
VIDEO_ATOMISP_LM3554 all=m
#-
-#- *** FILE: drivers/staging/media/deprecated/cpia2/Kconfig ***
-#-
-VIDEO_CPIA2 all=m
-
-#-
-#- *** FILE: drivers/staging/media/deprecated/meye/Kconfig ***
-#-
-VIDEO_MEYE i386=m x86_64=m
-
-#-
-#- *** FILE: drivers/staging/media/deprecated/saa7146/av7110/Kconfig ***
+#- *** FILE: drivers/staging/media/av7110/Kconfig ***
#-
DVB_AV7110 all=m sparc=n
DVB_AV7110_OSD all=y
DVB_BUDGET_PATCH all=m
DVB_SP8870 all=m
-#-
-#- *** FILE: drivers/staging/media/deprecated/saa7146/common/Kconfig ***
-#-
-VIDEO_SAA7146 all=m
-VIDEO_SAA7146_VV all=m
-
-#-
-#- *** FILE: drivers/staging/media/deprecated/saa7146/saa7146/Kconfig ***
-#-
-VIDEO_HEXIUM_GEMINI all=m
-VIDEO_HEXIUM_ORION all=m
-VIDEO_MXB all=m sparc=n
-
-#-
-#- *** FILE: drivers/staging/media/deprecated/saa7146/ttpci/Kconfig ***
-#-
-DVB_BUDGET_CORE all=m
-DVB_BUDGET all=m sparc=n
-DVB_BUDGET_CI all=m sparc=n
-DVB_BUDGET_AV all=m sparc=n
-
-#-
-#- *** FILE: drivers/staging/media/deprecated/stkwebcam/Kconfig ***
-#-
-VIDEO_STKWEBCAM all=m
-
-#-
-#- *** FILE: drivers/staging/media/deprecated/tm6000/Kconfig ***
-#-
-VIDEO_TM6000 all=m
-VIDEO_TM6000_ALSA all=m
-VIDEO_TM6000_DVB all=m
-
-#-
-#- *** FILE: drivers/staging/media/deprecated/zr364xx/Kconfig ***
-#-
-USB_ZR364XX all=m
-
#-
#- *** FILE: drivers/staging/media/ipu3/Kconfig ***
#-
@@ -10677,11 +10678,6 @@ PI433 all=m
#-
QLGE all=m
-#-
-#- *** FILE: drivers/staging/r8188eu/Kconfig ***
-#-
-R8188EU all=m
-
#-
#- *** FILE: drivers/staging/rtl8192e/Kconfig ***
#-
@@ -10855,6 +10851,7 @@ QORIQ_THERMAL arm64=m
ROCKCHIP_THERMAL arm64=m
ARMADA_THERMAL arm=m
DA9062_THERMAL arm=m arm64=m
+#- file drivers/thermal/mediatek/Kconfig goes here
AMLOGIC_THERMAL arm64=m
#- file drivers/thermal/intel/Kconfig goes here
#- file drivers/thermal/broadcom/Kconfig goes here
@@ -10967,10 +10964,12 @@ SERIAL_8250_ASPEED_VUART arm=m arm64=m
SERIAL_8250_BOCA alpha=m i386=m
SERIAL_8250_EXAR_ST16C554 alpha=m i386=m
SERIAL_8250_HUB6 alpha=m i386=m
+SERIAL_8250_PCI1XXXX all=m
SERIAL_8250_SHARE_IRQ all=y
SERIAL_8250_DETECT_IRQ all=y
SERIAL_8250_RSA all=y
SERIAL_8250_BCM2835AUX arm=y
+SERIAL_8250_DFL all=m
SERIAL_8250_DW all=m
SERIAL_8250_EM arm=m
SERIAL_8250_RT288X all=y
@@ -10987,7 +10986,6 @@ SERIAL_OF_PLATFORM arm=m arm64=m ppc=m ppc64=m
SERIAL_AMBA_PL010 arm=m arm64=m
SERIAL_AMBA_PL011 arm=y arm64=y
SERIAL_AMBA_PL011_CONSOLE arm=y arm64=y
-SERIAL_EARLYCON_ARM_SEMIHOST arm=y arm64=y
SERIAL_KGDB_NMI all=n
SERIAL_MESON arm64=y
SERIAL_MESON_CONSOLE arm64=y
@@ -11556,6 +11554,7 @@ TYPEC_NVIDIA_ALTMODE all=m
#- *** FILE: drivers/usb/typec/mux/Kconfig ***
#-
TYPEC_MUX_FSA4480 all=m
+TYPEC_MUX_GPIO_SBU all=m
TYPEC_MUX_PI3USB30532 all=m
TYPEC_MUX_INTEL_PMC all=m
@@ -11605,8 +11604,10 @@ VDPA_SIM_BLOCK all=m
VDPA_USER all=m
IFCVF all=m
MLX5_VDPA_NET all=m
+MLX5_VDPA_STEERING_DEBUG all=n
VP_VDPA all=m
ALIBABA_ENI_VDPA all=m
+SNET_VDPA all=m
#-
#- *** FILE: drivers/vfio/Kconfig ***
@@ -11701,6 +11702,7 @@ LCD_HX8357 all=m
LCD_OTM3225A all=m
BACKLIGHT_CLASS_DEVICE all=y
BACKLIGHT_KTD253 all=m
+BACKLIGHT_KTZ8866 all=m
BACKLIGHT_LM3533 all=m
BACKLIGHT_CARILLO_RANCH i386=m x86_64=m
BACKLIGHT_PWM all=m
@@ -11850,8 +11852,6 @@ FB_CARMINE_DRAM_EVAL all=y
CARMINE_DRAM_CUSTOM all=n
#- file drivers/video/fbdev/geode/Kconfig goes here
FB_FSL_DIU ppc=m
-FB_TMIO all=m
-FB_TMIO_ACCELL all=y
FB_SM501 all=m
FB_SMSCUFX all=m
FB_UDL all=m
@@ -11964,7 +11964,6 @@ W1_CON all=y
W1_MASTER_MATROX all=m sparc=n
W1_MASTER_DS2490 all=m
W1_MASTER_DS2482 all=m
-W1_MASTER_DS1WM all=m
W1_MASTER_GPIO all=m
HDQ_MASTER_OMAP all=m
W1_MASTER_SGI all=m
@@ -12385,6 +12384,8 @@ EROFS_FS_SECURITY all=y
EROFS_FS_ZIP all=y
EROFS_FS_ZIP_LZMA all=y
EROFS_FS_ONDEMAND all=y
+EROFS_FS_PCPU_KTHREAD all=y
+EROFS_FS_PCPU_KTHREAD_HIPRI all=y
#-
#- *** FILE: fs/exfat/Kconfig ***
@@ -12835,7 +12836,6 @@ VBOXSF_FS all=m
#- *** FILE: fs/verity/Kconfig ***
#-
FS_VERITY all=y
-FS_VERITY_DEBUG all=n
FS_VERITY_BUILTIN_SIGNATURES all=y
#-
@@ -12952,6 +12952,7 @@ RELAY all=y
BLK_DEV_INITRD all=y
#- file usr/Kconfig goes here
BOOT_CONFIG all=y
+BOOT_CONFIG_FORCE all=n
BOOT_CONFIG_EMBED all=n
INITRAMFS_PRESERVE_MTIME all=y
CC_OPTIMIZE_FOR_PERFORMANCE all=y
@@ -13128,6 +13129,7 @@ RCU_TORTURE_TEST all=m
RCU_REF_SCALE_TEST all=m
RCU_CPU_STALL_TIMEOUT all=60
RCU_EXP_CPU_STALL_TIMEOUT all=0
+RCU_CPU_STALL_CPUTIME all=n
RCU_TRACE all=n
RCU_EQS_DEBUG all=n
@@ -13300,7 +13302,6 @@ DEBUG_FS_ALLOW_NONE all=n
#- file mm/Kconfig.debug goes here
DEBUG_OBJECTS all=n
SHRINKER_DEBUG all=n
-DEBUG_KMEMLEAK all=n
DEBUG_STACK_USAGE all=n
SCHED_STACK_END_CHECK all=y
DEBUG_VM all=n
@@ -13346,6 +13347,7 @@ LOCK_TORTURE_TEST all=m
WW_MUTEX_SELFTEST all=m
SCF_TORTURE_TEST all=m
CSD_LOCK_WAIT_DEBUG all=n
+NMI_CHECK_CPU all=y
DEBUG_IRQFLAGS all=n
STACKTRACE arm=y arm64=y
WARN_ALL_UNSEEDED_RANDOM all=n
@@ -13379,6 +13381,7 @@ FAULT_INJECTION all=n
ARCH_HAS_KCOV all=y
KCOV all=n
RUNTIME_TESTING_MENU all=y
+TEST_DHRY all=m
LKDTM all=m
TEST_LIST_SORT all=n
TEST_MIN_HEAP all=m
@@ -13429,7 +13432,6 @@ TEST_FPU all=m
TEST_CLOCKSOURCE_WATCHDOG=m
MEMTEST all=y
HYPERV_TESTING all=y
-#- file Documentation/Kconfig goes here
#-
#- *** FILE: lib/Kconfig.kasan ***
@@ -13541,6 +13543,7 @@ ZBUD all=y
Z3FOLD all=m
ZSMALLOC all=y
ZSMALLOC_STAT all=y
+ZSMALLOC_CHAIN_SIZE all="8"
SLAB all=n
SLUB all=y
SLOB all=n
@@ -13609,6 +13612,7 @@ DEBUG_PAGE_REF all=n
DEBUG_RODATA_TEST all=n
DEBUG_WX all=y
PTDUMP_DEBUGFS all=n
+DEBUG_KMEMLEAK all=n
#-
#- *** FILE: mm/damon/Kconfig ***
@@ -14071,7 +14075,6 @@ IP_NF_TARGET_MASQUERADE all=m
IP_NF_TARGET_NETMAP all=m
IP_NF_TARGET_REDIRECT all=m
IP_NF_MANGLE all=m
-IP_NF_TARGET_CLUSTERIP all=m
IP_NF_TARGET_ECN all=m
IP_NF_TARGET_TTL all=m
IP_NF_RAW all=m
@@ -14515,6 +14518,7 @@ RFKILL_GPIO all=m
AF_RXRPC all=m
AF_RXRPC_IPV6 all=y
AF_RXRPC_INJECT_LOSS all=n
+AF_RXRPC_INJECT_RX_DELAY all=y
AF_RXRPC_DEBUG all=n
RXKAD all=y
RXPERF all=m
@@ -14524,10 +14528,8 @@ RXPERF all=m
#-
NET_SCHED all=y
#- Queueing/Scheduling
-NET_SCH_CBQ all=m
NET_SCH_HTB all=m
NET_SCH_HFSC all=m
-NET_SCH_ATM all=m
NET_SCH_PRIO all=m
NET_SCH_MULTIQ all=m
NET_SCH_RED all=m
@@ -14539,7 +14541,6 @@ NET_SCH_CBS all=m
NET_SCH_ETF all=m
NET_SCH_TAPRIO all=m
NET_SCH_GRED all=m
-NET_SCH_DSMARK all=m
NET_SCH_NETEM all=m
NET_SCH_DRR all=m
NET_SCH_MQPRIO all=m
@@ -14571,8 +14572,6 @@ NET_CLS_FW all=m
NET_CLS_U32 all=m
CLS_U32_PERF all=y
CLS_U32_MARK all=y
-NET_CLS_RSVP all=m
-NET_CLS_RSVP6 all=m
NET_CLS_FLOW all=m
NET_CLS_CGROUP all=y
NET_CLS_BPF all=m
@@ -14638,7 +14637,10 @@ SMC_DIAG all=m
SUNRPC all=m
SUNRPC_GSS all=m
RPCSEC_GSS_KRB5 all=m
-SUNRPC_DISABLE_INSECURE_ENCTYPES all=y
+RPCSEC_GSS_KRB5_ENCTYPES_DES all=n
+RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1 all=y
+RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA all=y
+RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2 all=y
SUNRPC_DEBUG all=y
SUNRPC_XPRT_RDMA all=m
@@ -15313,9 +15315,6 @@ SND_SOC_MIKROE_PROTO arm=m arm64=m
#-
SND_BCM2835_SOC_I2S arm=m
SND_BCM63XX_I2S_WHISTLER all=m
-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
#-
#- *** FILE: sound/soc/codecs/Kconfig ***
@@ -15342,6 +15341,7 @@ SND_SOC_AK5386 all=m
SND_SOC_AK5558 all=m
SND_SOC_ALC5623 all=m
SND_SOC_AW8738 all=m
+SND_SOC_AW88395 all=m
SND_SOC_BD28623 all=m
SND_SOC_BT_SCO all=m
SND_SOC_CPCAP arm=m arm64=m
@@ -15356,6 +15356,7 @@ SND_SOC_CS35L41_I2C all=m
SND_SOC_CS35L45_SPI all=m
SND_SOC_CS35L45_I2C all=m
SND_SOC_CS42L42 all=m
+SND_SOC_CS42L42_SDW all=m
SND_SOC_CS42L51 all=m
SND_SOC_CS42L51_I2C all=m
SND_SOC_CS42L52 all=m
@@ -15387,6 +15388,7 @@ SND_SOC_GTM601 all=m
SND_SOC_HDAC_HDMI all=m
SND_SOC_HDA arm=m arm64=m
SND_SOC_ICS43432 all=m
+SND_SOC_IDT821034 all=m
SND_SOC_INNO_RK3036 all=m
SND_SOC_MAX98088 all=m
SND_SOC_MAX98095 all=m
@@ -15418,6 +15420,7 @@ SND_SOC_PCM3168A_SPI all=m
SND_SOC_PCM5102A all=m
SND_SOC_PCM512x_I2C all=m
SND_SOC_PCM512x_SPI all=m
+SND_SOC_PEB2466 all=m
SND_SOC_RK3328 all=m
SND_SOC_RK817 arm=m arm64=m
SND_SOC_RT1308_SDW all=m
@@ -15434,12 +15437,14 @@ SND_SOC_RT5682_SDW all=m
SND_SOC_RT700_SDW all=m
SND_SOC_RT711_SDW all=m
SND_SOC_RT711_SDCA_SDW all=m
+SND_SOC_RT712_SDCA_SDW all=m
SND_SOC_RT715_SDW all=m
SND_SOC_RT715_SDCA_SDW all=m
SND_SOC_RT9120 all=m
SND_SOC_SGTL5000 all=m
SND_SOC_SIMPLE_AMPLIFIER all=m
SND_SOC_SIMPLE_MUX all=m
+SND_SOC_SMA1303 all=m
SND_SOC_SPDIF all=m
SND_SOC_SRC4XXX_I2C all=m
SND_SOC_SSM2305 all=m
@@ -15855,3 +15860,74 @@ RD_XZ all=y
RD_LZO all=y
RD_LZ4 all=y
RD_ZSTD all=y
+
+#-
+#- *** PROBABLY REMOVED OPTIONS ***
+#-
+DRM_I810 i386=m x86_64=m
+DRM_MGA all=m
+DRM_R128 all=m
+DRM_SAVAGE all=m
+DRM_SIS all=m
+DRM_TDFX all=m
+DRM_VIA all=m
+FB_TMIO all=m
+FB_TMIO_ACCELL all=y
+FS_VERITY_DEBUG all=n
+GOOGLE_COREBOOT_TABLE_ACPI all=m
+GPIO_UCB1400 all=m
+HABANA_AI all=m
+HTC_PASIC3 all=m
+IP_NF_TARGET_CLUSTERIP all=m
+MFD_ASIC3 arm=n
+MFD_INTEL_M10_BMC all=m
+MFD_T7L66XB arm=n
+MFD_TC6387XB arm=n
+MFD_TC6393XB arm=n
+NET_CLS_RSVP all=m
+NET_CLS_RSVP6 all=m
+NET_SCH_ATM all=m
+NET_SCH_CBQ all=m
+NET_SCH_DSMARK all=m
+NOUVEAU_LEGACY_CTX_SUPPORT all=y
+PARIDE all=m
+PARIDE_ATEN all=m
+PARIDE_BPCK all=m
+PARIDE_BPCK6 arm=n i386=m ppc=n
+PARIDE_COMM all=m
+PARIDE_DSTR all=m
+PARIDE_EPAT all=m
+PARIDE_EPATC8 all=y
+PARIDE_EPIA all=m
+PARIDE_FIT2 all=m
+PARIDE_FIT3 all=m
+PARIDE_FRIQ all=m
+PARIDE_FRPW all=m
+PARIDE_KBIC all=m
+PARIDE_KTTI all=m
+PARIDE_ON20 all=m
+PARIDE_ON26 all=m
+PARIDE_PCD all=m
+PARIDE_PD all=m
+PARIDE_PF all=m
+PARIDE_PG all=m
+PARIDE_PT all=m
+PARPORT_AX88796 all=m
+PDA_POWER all=m
+R8188EU all=m
+RTC_DRV_V3020 all=m
+SERIAL_EARLYCON_ARM_SEMIHOST arm=y arm64=y
+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
+SUNRPC_DISABLE_INSECURE_ENCTYPES all=y
+TOUCHSCREEN_UCB1400 all=m sparc=n
+UCB1400_CORE all=m
+USB_ZR364XX all=m
+VIDEO_CPIA2 all=m
+VIDEO_MEYE i386=m x86_64=m
+VIDEO_STKWEBCAM all=m
+VIDEO_TM6000 all=m
+VIDEO_TM6000_ALSA all=m
+VIDEO_TM6000_DVB all=m
+W1_MASTER_DS1WM all=m
diff --git a/kernel-pom-ng-IPV4OPTSSTRIP.patch b/kernel-pom-ng-IPV4OPTSSTRIP.patch
index ae696e13..0e0adca8 100644
--- a/kernel-pom-ng-IPV4OPTSSTRIP.patch
+++ b/kernel-pom-ng-IPV4OPTSSTRIP.patch
@@ -20,9 +20,8 @@ diff -ur linux-5.9/net/ipv4/netfilter.org/Kconfig linux-5.9/net/ipv4/netfilter/K
diff -ur linux-5.9/net/ipv4/netfilter.org/Makefile linux-5.9/net/ipv4/netfilter/Makefile
--- linux-5.9/net/ipv4/netfilter.org/Makefile 2020-10-11 23:15:50.000000000 +0200
+++ linux-5.9/net/ipv4/netfilter/Makefile 2020-11-03 13:07:22.874511004 +0100
-@@ -48,6 +48,7 @@
+@@ -48,5 +48,6 @@
# targets
- obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o
obj-$(CONFIG_IP_NF_TARGET_ECN) += ipt_ECN.o
+obj-$(CONFIG_IP_NF_TARGET_IPV4OPTSSTRIP) += ipt_IPV4OPTSSTRIP.o
obj-$(CONFIG_IP_NF_TARGET_REJECT) += ipt_REJECT.o
diff --git a/update-source.sh b/update-source.sh
index 88ab5189..5d5235b0 100755
--- a/update-source.sh
+++ b/update-source.sh
@@ -2,7 +2,7 @@
set -xe
BRANCH=aufs6.2
-#BRANCH=aufs6.x-rcN
+BRANCH=aufs6.x-rcN
# aufs6
[ -d aufs-standalone ] || git clone https://github.com/sfjro/aufs-standalone.git
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/5db017eb132180a8a6fb3f255876e776cb38b22b
More information about the pld-cvs-commit
mailing list