[packages/kernel/LINUX_6_12] - updated aufs from upstream and pepper it with const
baggins
baggins at pld-linux.org
Wed Jul 8 01:31:07 CEST 2026
commit 5967703d89c3e8491a6048fa459c1c38ec50cc4d
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Wed Jul 8 01:30:38 2026 +0200
- updated aufs from upstream and pepper it with const
kernel-aufs.patch | 393 ++++++++++++++++++++++++++----------------------------
1 file changed, 192 insertions(+), 201 deletions(-)
---
diff --git a/kernel-aufs.patch b/kernel-aufs.patch
index aba4c620..b9620760 100644
--- a/kernel-aufs.patch
+++ b/kernel-aufs.patch
@@ -14,14 +14,14 @@ index 3117304676331..a5e93a2ef3c16 100644
endif # MISC_FILESYSTEMS
diff --git a/fs/Makefile b/fs/Makefile
-index 61679fd587b7e..b2539712b80d0 100644
+index 61679fd587b7e..62a96f5053579 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -130,3 +130,4 @@ obj-$(CONFIG_EROFS_FS) += erofs/
obj-$(CONFIG_VBOXSF_FS) += vboxsf/
obj-$(CONFIG_ZONEFS_FS) += zonefs/
obj-$(CONFIG_BPF_LSM) += bpf_fs_kfuncs.o
-+obj-$(CONFIG_AUFS_FS) += aufs/
++obj-$(CONFIG_AUFS_FS) += aufs/
SPDX-License-Identifier: GPL-2.0
aufs6.12.29 base patch
@@ -50,16 +50,15 @@ index de04c7ba8571b..a8d7e5e0915a9 100644
M: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
R: Dave Ertman <david.m.ertman at intel.com>
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 6bd44ec2c9b1a..c8eba5ada9950 100644
+index 6bd44ec2c9b1a..42cf06b8749b1 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
-@@ -605,6 +605,26 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -605,6 +605,31 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
goto done;
}
+/*
+ * for AUFS
-+ * no get/put for file.
+ */
+/* Just to make the compiler silence, declare it */
+struct file *loop_backing_file(struct super_block *sb);
@@ -67,11 +66,17 @@ index 6bd44ec2c9b1a..c8eba5ada9950 100644
+{
+ struct file *ret;
+ struct loop_device *l;
++ unsigned long flags;
+
+ ret = NULL;
+ if (MAJOR(sb->s_dev) == LOOP_MAJOR) {
+ l = sb->s_bdev->bd_disk->private_data;
++ /* slow? but it's safe */
++ spin_lock_irqsave(&l->lo_lock, flags);
+ ret = l->lo_backing_file;
++ if (ret)
++ get_file(ret); /* callers have to call fput() */
++ spin_unlock_irqrestore(&l->lo_lock, flags);
+ }
+ return ret;
+}
@@ -125,23 +130,6 @@ index 3d89de31066ae..ca24c8fe2aa23 100644
if (error)
return error;
-diff --git a/fs/namespace.c b/fs/namespace.c
-index c3c1e8c644f2e..3a8f55b2225d4 100644
---- a/fs/namespace.c
-+++ b/fs/namespace.c
-@@ -967,6 +967,12 @@ static inline int check_mnt(struct mount *mnt)
- return mnt->mnt_ns == current->nsproxy->mnt_ns;
- }
-
-+/* for aufs, CONFIG_AUFS_BR_FUSE */
-+int is_current_mnt_ns(struct vfsmount *mnt)
-+{
-+ return check_mnt(real_mount(mnt));
-+}
-+
- /*
- * vfsmount lock must be held for write
- */
diff --git a/fs/splice.c b/fs/splice.c
index 38f8c94267315..82432ce08d484 100644
--- a/fs/splice.c
@@ -189,7 +177,7 @@ index 67964dc4db952..517ef3ea8c85f 100644
* Acquire a lock.
*
diff --git a/include/linux/mnt_namespace.h b/include/linux/mnt_namespace.h
-index 70b366b648160..08cfdabb2721f 100644
+index 70b366b648160..05bc01c0f38af 100644
--- a/include/linux/mnt_namespace.h
+++ b/include/linux/mnt_namespace.h
@@ -10,6 +10,7 @@ struct mnt_namespace;
@@ -200,15 +188,6 @@ index 70b366b648160..08cfdabb2721f 100644
extern struct mnt_namespace *copy_mnt_ns(unsigned long, struct mnt_namespace *,
struct user_namespace *, struct fs_struct *);
-@@ -17,6 +18,8 @@ extern void put_mnt_ns(struct mnt_namespace *ns);
- DEFINE_FREE(put_mnt_ns, struct mnt_namespace *, if (!IS_ERR_OR_NULL(_T)) put_mnt_ns(_T))
- extern struct ns_common *from_mnt_ns(struct mnt_namespace *);
-
-+extern int is_current_mnt_ns(struct vfsmount *mnt);
-+
- extern const struct file_operations proc_mounts_operations;
- extern const struct file_operations proc_mountinfo_operations;
- extern const struct file_operations proc_mountstats_operations;
diff --git a/include/linux/splice.h b/include/linux/splice.h
index 9dec4861d09f6..14583d8468640 100644
--- a/include/linux/splice.h
@@ -246,25 +225,28 @@ SPDX-License-Identifier: GPL-2.0
aufs6.12.29 mmap patch
diff --git a/fs/Makefile b/fs/Makefile
-index b2539712b80d0..8260694bb133a 100644
+index 62a96f5053579..4544ef689c75e 100644
--- a/fs/Makefile
+++ b/fs/Makefile
-@@ -16,6 +16,9 @@ obj-y := open.o read_write.o file_table.o super.o \
- stack.o fs_struct.o statfs.o fs_pin.o nsfs.o \
+@@ -17,6 +17,12 @@ obj-y := open.o read_write.o file_table.o super.o \
fs_types.o fs_context.o fs_parser.o fsopen.o init.o \
kernel_read_file.o mnt_idmapping.o remap_range.o pidfs.o
-+ifeq (${CONFIG_AUFS_FS},m)
+
++# don't move au_mf.o to the bottom of this file, otherwise it will
++# conflict with aufs-kbuild.patch.
++ifeq ($(CONFIG_AUFS_FS),m)
+obj-y += au_mf.o
+endif
-
++
obj-$(CONFIG_BUFFER_HEAD) += buffer.o mpage.o
obj-$(CONFIG_PROC_FS) += proc_namespace.o
+ obj-$(CONFIG_LEGACY_DIRECT_IO) += direct-io.o
diff --git a/fs/au_mf.c b/fs/au_mf.c
new file mode 100644
-index 0000000000000..ee1ff03778b98
+index 0000000000000..3524df3b21ccd
--- /dev/null
+++ b/fs/au_mf.c
-@@ -0,0 +1,60 @@
+@@ -0,0 +1,59 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2025 Junjiro R. Okajima
@@ -276,21 +258,20 @@ index 0000000000000..ee1ff03778b98
+#if IS_MODULE(CONFIG_AUFS_FS)
+/*
+ * This au_mf.c (aufs mmapped files) is for external AUFS module only,
-+ * and statically linked to kernel.
++ * and au_mf.o is statically linked to kernel.
+ * See also $srctree/fs/Makefile.
-+ * This linking may seem to be tricky. It is due to support the case when AUFS
-+ * is configured as an external module, eg. VFS calls a function defined in the
++ * This linking may seem tricky. It is due to support the case when AUFS is
++ * configured as an external module, eg. VFS calls a function defined in the
+ * dynamic module.
+ */
+#else
+BUILD_BUG_ON_MSG(1, "CONFIG_AUFS_FS is disabled.");
+#endif
+
-+const struct path *au_file_user_path(struct file *f)
++const struct path *au_file_user_path(const struct file *f)
+{
-+ const struct path *path,
-+ *(*func)(struct file *f),
-+ *au_do_file_user_path(struct file *f);
++ const struct path *path, *(*func)(const struct file *f);
++ const struct path *au_do_file_user_path(const struct file *f);
+
+ path = NULL;
+ func = symbol_get(au_do_file_user_path);
@@ -306,11 +287,11 @@ index 0000000000000..ee1ff03778b98
+}
+EXPORT_SYMBOL_GPL(au_file_user_path);
+
-+const struct inode *au_file_user_inode(struct file *f)
++const struct inode *au_file_user_inode(const struct file *f)
+{
+ const struct inode *inode,
-+ *(*func)(struct file *f),
-+ *au_do_file_user_inode(struct file *f);
++ *(*func)(const struct file *f),
++ *au_do_file_user_inode(const struct file *f);
+
+ inode = NULL;
+ func = symbol_get(au_do_file_user_inode);
@@ -326,18 +307,20 @@ index 0000000000000..ee1ff03778b98
+}
+EXPORT_SYMBOL_GPL(au_file_user_inode);
diff --git a/fs/proc/base.c b/fs/proc/base.c
-index a2541f5204af0..4fca8eee56e14 100644
+index a2541f5204af0..b1aa94d8d15ca 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
-@@ -1784,7 +1784,7 @@ static int proc_exe_link(struct dentry *dentry, struct path *exe_path)
+@@ -1784,8 +1784,8 @@ static int proc_exe_link(struct dentry *dentry, struct path *exe_path)
exe_file = get_task_exe_file(task);
put_task_struct(task);
if (exe_file) {
- *exe_path = exe_file->f_path;
+- path_get(&exe_file->f_path);
+ *exe_path = *file_user_path(exe_file);
- path_get(&exe_file->f_path);
++ path_get(exe_path);
fput(exe_file);
return 0;
+ } else
diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
index c6e7ebc637562..12c340dcdec3d 100644
--- a/fs/proc/nommu.c
@@ -374,12 +357,12 @@ index cb9f98b540e31..44805e9a38604 100644
+#if IS_MODULE(CONFIG_AUFS_FS)
+/* fs/au_mf.c */
-+const struct path *au_file_user_path(struct file *f);
-+const struct inode *au_file_user_inode(struct file *f);
++const struct path *au_file_user_path(const struct file *f);
++const struct inode *au_file_user_inode(const struct file *f);
+#elif IS_BUILTIN(CONFIG_AUFS_FS)
+/* fs/aufs/mf.c */
-+const struct path *au_do_file_user_path(struct file *f);
-+const struct inode *au_do_file_user_inode(struct file *f);
++const struct path *au_do_file_user_path(const struct file *f);
++const struct inode *au_do_file_user_inode(const struct file *f);
+#define au_file_user_path(f) au_do_file_user_path(f)
+#define au_file_user_inode(f) au_do_file_user_inode(f)
+#else
@@ -476,18 +459,10 @@ index 18735dc8269a1..42ab3cc5aeeb9 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 3a8f55b2225d4..a6f32c184d5c5 100644
+index c3c1e8c644f2e..12ef6a9fe6915 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
-@@ -972,6 +972,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
- {
- return check_mnt(real_mount(mnt));
- }
-+EXPORT_SYMBOL_GPL(is_current_mnt_ns);
-
- /*
- * vfsmount lock must be held for write
-@@ -2206,6 +2207,7 @@ struct vfsmount *collect_mounts(const struct path *path)
+@@ -2200,6 +2200,7 @@ struct vfsmount *collect_mounts(const struct path *path)
return ERR_CAST(tree);
return &tree->mnt;
}
@@ -495,15 +470,15 @@ index 3a8f55b2225d4..a6f32c184d5c5 100644
static void free_mnt_ns(struct mnt_namespace *);
static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *, bool);
-@@ -2236,6 +2238,7 @@ void drop_collected_mounts(struct vfsmount *mnt)
- }
- return false;
+@@ -2230,6 +2231,7 @@ void drop_collected_mounts(struct vfsmount *mnt)
+ unlock_mount_hash();
+ namespace_unlock();
}
+EXPORT_SYMBOL_GPL(drop_collected_mounts);
- bool has_locked_children(struct mount *mnt, struct dentry *dentry)
+ static bool __has_locked_children(struct mount *mnt, struct dentry *dentry)
{
-@@ -2307,6 +2310,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+@@ -2301,6 +2303,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
}
return 0;
}
@@ -511,6 +486,14 @@ index 3a8f55b2225d4..a6f32c184d5c5 100644
static void lock_mnt_tree(struct mount *mnt)
{
+@@ -5618,6 +5621,7 @@ bool our_mnt(struct vfsmount *mnt)
+ {
+ return check_mnt(real_mount(mnt));
+ }
++EXPORT_SYMBOL_GPL(our_mnt);
+
+ bool current_chrooted(void)
+ {
diff --git a/fs/notify/group.c b/fs/notify/group.c
index 18446b7b0d495..09138e0b8a6a5 100644
--- a/fs/notify/group.c
@@ -678,7 +661,7 @@ index c5981e558bc26..bf24ac08acb64 100644
* security_task_alloc() - Allocate a task's LSM blob
diff -urN /usr/share/empty/Documentation/ABI/testing/debugfs-aufs linux/Documentation/ABI/testing/debugfs-aufs
--- /usr/share/empty/Documentation/ABI/testing/debugfs-aufs 1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/ABI/testing/debugfs-aufs 2022-11-05 23:02:18.955889283 +0100
++++ linux/Documentation/ABI/testing/debugfs-aufs 2026-04-24 21:34:40.149432183 +0200
@@ -0,0 +1,55 @@
+What: /debug/aufs/si_<id>/
+Date: March 2009
@@ -737,7 +720,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 2022-11-05 23:02:18.955889283 +0100
++++ linux/Documentation/ABI/testing/sysfs-aufs 2026-04-24 21:34:40.149513054 +0200
@@ -0,0 +1,31 @@
+What: /sys/fs/aufs/si_<id>/
+Date: March 2009
@@ -772,7 +755,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 2025-02-04 20:03:40.673271838 +0100
++++ linux/Documentation/filesystems/aufs/design/01intro.txt 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,171 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -947,7 +930,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 2025-02-04 20:03:40.673271838 +0100
++++ linux/Documentation/filesystems/aufs/design/02struct.txt 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,258 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -1209,7 +1192,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 2025-02-04 20:03:40.673271838 +0100
++++ linux/Documentation/filesystems/aufs/design/03atomic_open.txt 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,85 @@
+
+# Copyright (C) 2015-2025 Junjiro R. Okajima
@@ -1298,7 +1281,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 2025-02-04 20:03:40.673271838 +0100
++++ linux/Documentation/filesystems/aufs/design/03lookup.txt 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,113 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -1415,7 +1398,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 2025-02-04 20:03:40.673271838 +0100
++++ linux/Documentation/filesystems/aufs/design/04branch.txt 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,74 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -1493,7 +1476,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 2025-02-04 20:03:40.673271838 +0100
++++ linux/Documentation/filesystems/aufs/design/05wbr_policy.txt 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,64 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -1561,7 +1544,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 2022-11-05 23:02:18.959222617 +0100
++++ linux/Documentation/filesystems/aufs/design/06dirren.dot 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,44 @@
+
+// to view this graph, run dot(1) command in GRAPHVIZ.
@@ -1609,7 +1592,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 2025-02-04 20:03:40.673271838 +0100
++++ linux/Documentation/filesystems/aufs/design/06dirren.txt 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,102 @@
+
+# Copyright (C) 2017-2025 Junjiro R. Okajima
@@ -1715,7 +1698,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 2025-02-04 20:03:40.673271838 +0100
++++ linux/Documentation/filesystems/aufs/design/06fhsm.txt 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,118 @@
+
+# Copyright (C) 2011-2025 Junjiro R. Okajima
@@ -1837,7 +1820,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 2025-12-01 15:04:47.556666712 +0100
++++ linux/Documentation/filesystems/aufs/design/06mmap.txt 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,40 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -1881,7 +1864,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06mmap.txt linu
+will be much smaller than the approach aufs used to take.
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 2025-02-04 20:03:40.673271838 +0100
++++ linux/Documentation/filesystems/aufs/design/06xattr.txt 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,94 @@
+
+# Copyright (C) 2014-2025 Junjiro R. Okajima
@@ -1979,7 +1962,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 2025-02-04 20:03:40.673271838 +0100
++++ linux/Documentation/filesystems/aufs/design/07export.txt 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,58 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -2041,7 +2024,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 2025-02-04 20:03:40.673271838 +0100
++++ linux/Documentation/filesystems/aufs/design/08shwh.txt 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,52 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -2097,7 +2080,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 2025-02-04 20:03:40.673271838 +0100
++++ linux/Documentation/filesystems/aufs/design/10dynop.txt 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,47 @@
+
+# Copyright (C) 2010-2025 Junjiro R. Okajima
@@ -2148,7 +2131,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 2025-12-01 15:04:47.556666712 +0100
++++ linux/Documentation/filesystems/aufs/README 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,409 @@
+
+Aufs6 -- advanced multi layered unification filesystem version 6.x
@@ -2561,7 +2544,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 2025-02-04 20:03:40.673271838 +0100
++++ linux/fs/aufs/aufs.h 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,62 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -2627,7 +2610,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 2025-07-24 19:31:57.789847457 +0200
++++ linux/fs/aufs/branch.c 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,1427 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -4058,7 +4041,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 2025-12-01 15:04:46.893333378 +0100
++++ linux/fs/aufs/branch.h 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,375 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -4437,7 +4420,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 2022-11-05 23:02:18.959222617 +0100
++++ linux/fs/aufs/conf.mk 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,40 @@
+# SPDX-License-Identifier: GPL-2.0
+
@@ -4481,7 +4464,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 2026-02-08 10:11:28.889988407 +0100
++++ linux/fs/aufs/cpup.c 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,1446 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -5931,7 +5914,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 2025-07-24 19:31:57.789847457 +0200
++++ linux/fs/aufs/cpup.h 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,101 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -6036,7 +6019,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.h linux/fs/aufs/cpup.h
+#endif /* __AUFS_CPUP_H__ */
diff -urN /usr/share/empty/fs/aufs/dbgaufs.c linux/fs/aufs/dbgaufs.c
--- /usr/share/empty/fs/aufs/dbgaufs.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dbgaufs.c 2025-12-01 15:04:46.893333378 +0100
++++ linux/fs/aufs/dbgaufs.c 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,526 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -6566,7 +6549,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 2025-02-04 20:03:40.676605172 +0100
++++ linux/fs/aufs/dbgaufs.h 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -6623,7 +6606,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 2025-02-04 20:03:40.676605172 +0100
++++ linux/fs/aufs/dcsub.c 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,225 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -6852,7 +6835,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 2025-12-01 15:04:46.893333378 +0100
++++ linux/fs/aufs/dcsub.h 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,139 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -6995,7 +6978,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 2025-07-24 19:31:57.789847457 +0200
++++ linux/fs/aufs/debug.c 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,448 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -7447,7 +7430,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 2025-02-04 20:03:40.676605172 +0100
++++ linux/fs/aufs/debug.h 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,226 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -7677,7 +7660,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 2026-02-08 10:11:28.889988407 +0100
++++ linux/fs/aufs/dentry.c 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,1178 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -8859,7 +8842,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 2025-12-01 15:04:46.896666712 +0100
++++ linux/fs/aufs/dentry.h 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,270 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -9133,7 +9116,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 2025-02-04 20:03:40.676605172 +0100
++++ linux/fs/aufs/dinfo.c 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,555 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -9692,7 +9675,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 2025-07-24 19:31:57.789847457 +0200
++++ linux/fs/aufs/dir.c 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,765 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -10461,7 +10444,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 2025-02-04 20:03:40.676605172 +0100
++++ linux/fs/aufs/dir.h 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,134 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -10599,7 +10582,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 2026-02-08 10:11:28.889988407 +0100
++++ linux/fs/aufs/dirren.c 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,1308 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -11911,7 +11894,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 2025-12-01 15:04:46.896666712 +0100
++++ linux/fs/aufs/dirren.h 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,140 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -12055,7 +12038,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 2025-12-01 15:04:46.896666712 +0100
++++ linux/fs/aufs/dynop.c 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,365 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -12424,7 +12407,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 2025-02-04 20:03:40.676605172 +0100
++++ linux/fs/aufs/dynop.h 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -12505,7 +12488,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 2025-12-01 15:04:46.896666712 +0100
++++ linux/fs/aufs/export.c 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,846 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -13355,7 +13338,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 2025-02-04 20:03:40.679938505 +0100
++++ linux/fs/aufs/fhsm.c 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,426 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -13785,7 +13768,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 2026-02-08 10:11:28.889988407 +0100
++++ linux/fs/aufs/file.c 2026-07-07 23:31:48.407753732 +0200
@@ -0,0 +1,851 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -14640,7 +14623,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 2025-12-01 15:04:47.560000045 +0100
++++ linux/fs/aufs/file.h 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,327 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -14762,11 +14745,11 @@ diff -urN /usr/share/empty/fs/aufs/file.h linux/fs/aufs/file.h
+struct file *au_read_pre(struct file *file, int keep_fi, unsigned int lsc);
+
+/* mf.c */
-+void au_mf_add(struct file *h_file, struct file *file);
-+void au_mf_del(struct file *h_file, struct file *file);
++void au_mf_add(const struct file *h_file, struct file *file);
++void au_mf_del(const struct file *h_file, struct file *file);
+#if IS_MODULE(CONFIG_AUFS_FS)
-+const struct path *au_do_file_user_path(struct file *h_file);
-+const struct inode *au_do_file_user_inode(struct file *h_file);
++const struct path *au_do_file_user_path(const struct file *h_file);
++const struct inode *au_do_file_user_inode(const struct file *h_file);
+#elif IS_BUILTIN(CONFIG_AUFS_FS)
+/* declared in include/linux/fs.h */
+#endif
@@ -14971,7 +14954,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 2025-12-01 15:04:47.560000045 +0100
++++ linux/fs/aufs/finfo.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,148 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -15123,8 +15106,8 @@ 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 2025-12-01 15:04:47.556666712 +0100
-@@ -0,0 +1,791 @@
++++ linux/fs/aufs/f_op.c 2026-07-07 23:31:48.407753732 +0200
+@@ -0,0 +1,789 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -15234,7 +15217,6 @@ diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
+{
+ struct au_finfo *finfo;
+ aufs_bindex_t bindex;
-+ struct file *h_file;
+
+ finfo = au_fi(file);
+ au_hbl_del(&finfo->fi_hlist,
@@ -15243,7 +15225,7 @@ diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
+ if (bindex >= 0) {
+ if (au_test_mmapped(file)) {
+ /* h_file = au_hf_top(file); */
-+ h_file = finfo->fi_htop.hf_file;
++ const struct file *h_file = finfo->fi_htop.hf_file;
+ if (h_file)
+ au_mf_del(h_file, file);
+ }
@@ -15754,7 +15736,6 @@ diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
+ const unsigned char wlock
+ = (file->f_mode & FMODE_WRITE) && (vma->vm_flags & VM_SHARED);
+ struct super_block *sb;
-+ struct file *h_file;
+ struct inode *inode;
+
+ AuDbgVmRegion(file, vma);
@@ -15764,7 +15745,7 @@ diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
+ lockdep_off();
+ si_read_lock(sb, AuLock_NOPLMW);
+
-+ h_file = au_write_pre(file, /*do_ready*/wlock, /*wpre*/NULL);
++ const struct file *h_file = au_write_pre(file, /*do_ready*/wlock, /*wpre*/NULL);
+ lockdep_on();
+ err = PTR_ERR(h_file);
+ if (IS_ERR(h_file))
@@ -15918,8 +15899,8 @@ diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
+};
diff -urN /usr/share/empty/fs/aufs/fsctx.c linux/fs/aufs/fsctx.c
--- /usr/share/empty/fs/aufs/fsctx.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/fsctx.c 2025-12-01 15:04:46.896666712 +0100
-@@ -0,0 +1,1244 @@
++++ linux/fs/aufs/fsctx.c 2026-07-07 23:31:48.411087054 +0200
+@@ -0,0 +1,1245 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2022-2025 Junjiro R. Okajima
@@ -17002,9 +16983,10 @@ diff -urN /usr/share/empty/fs/aufs/fsctx.c linux/fs/aufs/fsctx.c
+ */
+static inline unsigned int is_colonopt(char *str)
+{
-+#define do_test(name) \
-+ if (!strncmp(str, name ":", sizeof(name))) \
-+ return sizeof(name) - 1
++#define do_test(name) do { \
++ if (!strncmp(str, name ":", sizeof(name))) \
++ return sizeof(name) - 1; \
++ } while (0)
+ do_test("br");
+ do_test("add");
+ do_test("ins");
@@ -17166,7 +17148,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 2025-04-07 08:13:07.936660162 +0200
++++ linux/fs/aufs/fstype.h 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,419 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -17589,7 +17571,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 2025-02-04 20:03:40.679938505 +0100
++++ linux/fs/aufs/hbl.h 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,65 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -17658,7 +17640,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 2025-02-04 20:03:40.679938505 +0100
++++ linux/fs/aufs/hfsnotify.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,290 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -17952,7 +17934,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 2025-02-04 20:03:40.679938505 +0100
++++ linux/fs/aufs/hfsplus.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,60 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -18016,7 +17998,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 2025-12-01 15:04:46.896666712 +0100
++++ linux/fs/aufs/hnotify.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,715 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -18735,7 +18717,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 2026-02-08 10:11:28.889988407 +0100
++++ linux/fs/aufs/iinfo.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,288 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -19027,7 +19009,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 2025-07-24 19:31:57.793180791 +0200
++++ linux/fs/aufs/inode.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,532 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -19563,7 +19545,7 @@ diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
+}
diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
--- /usr/share/empty/fs/aufs/inode.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/inode.h 2026-02-08 10:11:28.889988407 +0100
++++ linux/fs/aufs/inode.h 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,728 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -20295,7 +20277,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 2025-12-01 15:04:46.896666712 +0100
++++ linux/fs/aufs/ioctl.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,220 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -20519,7 +20501,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 2026-02-08 10:11:28.889988407 +0100
++++ linux/fs/aufs/i_op_add.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,947 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -21470,7 +21452,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
+}
diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
--- /usr/share/empty/fs/aufs/i_op.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op.c 2026-02-08 10:11:28.889988407 +0100
++++ linux/fs/aufs/i_op.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,1522 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -22996,7 +22978,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 2026-02-08 10:11:28.889988407 +0100
++++ linux/fs/aufs/i_op_del.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,517 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -23517,7 +23499,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 2026-02-08 10:11:28.889988407 +0100
++++ linux/fs/aufs/i_op_ren.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,1242 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -24763,7 +24745,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 2025-07-24 19:31:57.786514124 +0200
++++ linux/fs/aufs/Kconfig 2026-04-24 21:34:40.150806085 +0200
@@ -0,0 +1,201 @@
+# SPDX-License-Identifier: GPL-2.0
+config AUFS_FS
@@ -24968,7 +24950,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 2025-02-04 20:03:40.679938505 +0100
++++ linux/fs/aufs/lcnt.h 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,186 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -25158,8 +25140,8 @@ 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 2025-02-04 20:03:40.679938505 +0100
-@@ -0,0 +1,148 @@
++++ linux/fs/aufs/loop.c 2026-07-07 23:31:48.411087054 +0200
+@@ -0,0 +1,157 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -25192,21 +25174,23 @@ diff -urN /usr/share/empty/fs/aufs/loop.c linux/fs/aufs/loop.c
+ */
+int au_test_loopback_overlap(struct super_block *sb, struct dentry *h_adding)
+{
++ int ret;
+ struct super_block *h_sb;
+ struct file *backing_file;
+
++ ret = 0;
+ if (unlikely(!backing_file_func)) {
+ /* don't load "loop" module here */
+ backing_file_func = symbol_get(loop_backing_file);
+ if (unlikely(!backing_file_func))
+ /* "loop" module is not loaded */
-+ return 0;
++ goto out;
+ }
+
+ h_sb = h_adding->d_sb;
+ backing_file = backing_file_func(h_sb);
+ if (!backing_file)
-+ return 0;
++ goto out;
+
+ h_adding = backing_file->f_path.dentry;
+ /*
@@ -25214,8 +25198,15 @@ diff -urN /usr/share/empty/fs/aufs/loop.c linux/fs/aufs/loop.c
+ * in this case aufs cannot detect the loop.
+ */
+ if (unlikely(h_adding->d_sb == sb))
-+ return 1;
-+ return !!au_test_subdir(h_adding, sb->s_root);
++ ret = 1;
++ else
++ ret = !!au_test_subdir(h_adding, sb->s_root);
++
++ /* correspond to get_file() in loop_backing_file() */
++ fput(backing_file);
++
++out:
++ return ret;
+}
+
+/* true if a kernel thread named 'loop[0-9].*' accesses a file */
@@ -25310,7 +25301,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 2025-02-04 20:03:40.679938505 +0100
++++ linux/fs/aufs/loop.h 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,55 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -25369,7 +25360,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 2022-11-05 23:02:18.965889284 +0100
++++ linux/fs/aufs/magic.mk 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,31 @@
+# SPDX-License-Identifier: GPL-2.0
+
@@ -25404,7 +25395,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 2025-12-01 15:04:47.556666712 +0100
++++ linux/fs/aufs/Makefile 2026-07-07 23:31:48.404420410 +0200
@@ -0,0 +1,46 @@
+# SPDX-License-Identifier: GPL-2.0
+
@@ -25454,7 +25445,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/mf.c linux/fs/aufs/mf.c
--- /usr/share/empty/fs/aufs/mf.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/mf.c 2025-12-01 15:04:47.560000045 +0100
++++ linux/fs/aufs/mf.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,119 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -25480,7 +25471,7 @@ diff -urN /usr/share/empty/fs/aufs/mf.c linux/fs/aufs/mf.c
+#define N 0x0ff
+static struct hlist_bl_head au_mmapped_finfo[N + 1];
+
-+static unsigned int au_mf_hash(struct file *h_file)
++static unsigned int au_mf_hash(cons struct file *h_file)
+{
+ uintptr_t ptr;
+
@@ -25489,7 +25480,7 @@ diff -urN /usr/share/empty/fs/aufs/mf.c linux/fs/aufs/mf.c
+ return (ptr >> 8) & N;
+}
+
-+void au_mf_add(struct file *h_file, struct file *file)
++void au_mf_add(const struct file *h_file, struct file *file)
+{
+ struct au_finfo *finfo;
+ unsigned int hash;
@@ -25504,7 +25495,7 @@ diff -urN /usr/share/empty/fs/aufs/mf.c linux/fs/aufs/mf.c
+ }
+}
+
-+void au_mf_del(struct file *h_file, struct file *file)
++void au_mf_del(const struct file *h_file, struct file *file)
+{
+ struct au_finfo *finfo;
+ unsigned int hash;
@@ -25516,7 +25507,7 @@ diff -urN /usr/share/empty/fs/aufs/mf.c linux/fs/aufs/mf.c
+ au_hbl_del(&finfo->fi_mf, hbl_head);
+}
+
-+static struct file *au_mf_find(struct file *h_file)
++static struct file *au_mf_find(const struct file *h_file)
+{
+ struct file *found;
+ unsigned int hash;
@@ -25548,7 +25539,7 @@ diff -urN /usr/share/empty/fs/aufs/mf.c linux/fs/aufs/mf.c
+/* ---------------------------------------------------------------------- */
+/* declared in include/linux/fs.h */
+
-+const struct path *au_do_file_user_path(struct file *h_file)
++const struct path *au_do_file_user_path(const struct file *h_file)
+{
+ struct path *path;
+ struct file *file;
@@ -25562,7 +25553,7 @@ diff -urN /usr/share/empty/fs/aufs/mf.c linux/fs/aufs/mf.c
+}
+EXPORT_SYMBOL_GPL(au_do_file_user_path);
+
-+const struct inode *au_do_file_user_inode(struct file *h_file)
++const struct inode *au_do_file_user_inode(const struct file *h_file)
+{
+ struct inode *inode;
+ struct file *file;
@@ -25577,7 +25568,7 @@ diff -urN /usr/share/empty/fs/aufs/mf.c linux/fs/aufs/mf.c
+EXPORT_SYMBOL_GPL(au_do_file_user_inode);
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 2025-12-01 15:04:46.896666712 +0100
++++ linux/fs/aufs/module.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,275 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -25856,7 +25847,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 2025-12-01 15:04:46.896666712 +0100
++++ linux/fs/aufs/module.h 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,180 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -26040,7 +26031,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 2026-02-08 10:11:28.889988407 +0100
++++ linux/fs/aufs/mvdown.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,700 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -26744,7 +26735,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 2025-07-24 19:31:57.793180791 +0200
++++ linux/fs/aufs/opts.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,1030 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -27778,7 +27769,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 2025-07-24 19:31:57.793180791 +0200
++++ linux/fs/aufs/opts.h 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,264 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -28046,7 +28037,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 2026-02-08 10:11:28.889988407 +0100
++++ linux/fs/aufs/plink.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,508 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -28558,7 +28549,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 2025-02-04 20:03:40.683271838 +0100
++++ linux/fs/aufs/poll.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -28613,7 +28604,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 2025-02-04 20:03:40.683271838 +0100
++++ linux/fs/aufs/posix_acl.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,108 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -28725,7 +28716,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 2025-02-04 20:03:40.683271838 +0100
++++ linux/fs/aufs/procfs.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,168 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -28897,7 +28888,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 2025-07-24 19:31:57.793180791 +0200
++++ linux/fs/aufs/rdu.c 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,384 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -29285,7 +29276,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 2025-07-24 19:31:57.793180791 +0200
++++ linux/fs/aufs/rwsem.h 2026-07-07 23:31:48.411087054 +0200
@@ -0,0 +1,89 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -29378,7 +29369,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 2025-02-04 20:03:40.683271838 +0100
++++ linux/fs/aufs/sbinfo.c 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,316 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -29698,7 +29689,7 @@ diff -urN /usr/share/empty/fs/aufs/sbinfo.c linux/fs/aufs/sbinfo.c
+}
diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
--- /usr/share/empty/fs/aufs/super.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/super.c 2025-12-01 15:04:46.896666712 +0100
++++ linux/fs/aufs/super.c 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,871 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -30573,7 +30564,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 2025-12-01 15:04:46.896666712 +0100
++++ linux/fs/aufs/super.h 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,618 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -31195,7 +31186,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 2025-02-04 20:03:40.683271838 +0100
++++ linux/fs/aufs/sysaufs.c 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,94 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -31293,7 +31284,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 2025-02-04 20:03:40.683271838 +0100
++++ linux/fs/aufs/sysaufs.h 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,102 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -31399,7 +31390,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 2025-02-04 20:03:40.683271838 +0100
++++ linux/fs/aufs/sysfs.c 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,374 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -31777,7 +31768,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 2025-02-04 20:03:40.683271838 +0100
++++ linux/fs/aufs/sysrq.c 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,157 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -31938,7 +31929,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 2025-07-24 19:31:57.793180791 +0200
++++ linux/fs/aufs/vdir.c 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,896 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -32838,7 +32829,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 2026-02-08 10:11:28.893321741 +0100
++++ linux/fs/aufs/vfsub.c 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,1005 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -32875,7 +32866,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+ if (!au_test_fuse(h_sb) || !au_userns)
+ return 0;
+
-+ return is_current_mnt_ns(mnt) ? 0 : -EACCES;
++ return our_mnt(mnt) ? 0 : -EACCES;
+}
+#endif
+
@@ -33847,7 +33838,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 2026-02-08 10:11:28.893321741 +0100
++++ linux/fs/aufs/vfsub.h 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,436 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -34287,7 +34278,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 2026-02-08 10:11:28.893321741 +0100
++++ linux/fs/aufs/wbr_policy.c 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,836 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -35127,7 +35118,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 2026-02-08 10:11:28.893321741 +0100
++++ linux/fs/aufs/whout.c 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,1049 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -36180,7 +36171,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 2025-12-01 15:04:46.900000045 +0100
++++ linux/fs/aufs/whout.h 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,87 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -36271,7 +36262,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 2025-02-04 20:03:40.686605172 +0100
++++ linux/fs/aufs/wkq.c 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,370 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -36645,7 +36636,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 2025-07-24 19:31:57.796514124 +0200
++++ linux/fs/aufs/wkq.h 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,89 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -36738,7 +36729,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 2025-02-04 20:03:40.686605172 +0100
++++ linux/fs/aufs/xattr.c 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,360 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -37102,7 +37093,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 2026-02-08 10:11:28.893321741 +0100
++++ linux/fs/aufs/xino.c 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,1927 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -39033,7 +39024,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 2026-02-08 10:11:28.893321741 +0100
++++ linux/include/uapi/linux/aufs_type.h 2026-07-07 23:31:48.414420377 +0200
@@ -0,0 +1,452 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
@@ -39077,7 +39068,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.12.29-20260112"
++#define AUFS_VERSION "6.12.29-20260525"
+
+/* todo? move this to linux-2.6.19/include/magic.h */
+#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
@@ -39491,7 +39482,7 @@ SPDX-License-Identifier: GPL-2.0
aufs6.12.29 loopback patch
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index c8eba5ada9950..52b55a88c7af2 100644
+index 42cf06b8749b1..d97514b6a6355 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -54,7 +54,7 @@ struct loop_device {
@@ -39575,7 +39566,7 @@ index c8eba5ada9950..52b55a88c7af2 100644
dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
goto done;
}
-@@ -980,6 +1005,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -985,6 +1010,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
const struct loop_config *config)
{
struct file *file = fget(config->fd);
@@ -39583,7 +39574,7 @@ index c8eba5ada9950..52b55a88c7af2 100644
struct queue_limits lim;
int error;
loff_t size;
-@@ -1001,6 +1027,13 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1006,6 +1032,13 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
/* This is safe, since we have a reference from open(). */
__module_get(THIS_MODULE);
@@ -39597,7 +39588,7 @@ index c8eba5ada9950..52b55a88c7af2 100644
/*
* If we don't hold exclusive handle for the device, upgrade to it
* here to avoid changing device under exclusive owner.
-@@ -1055,6 +1088,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1060,6 +1093,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
lo->use_dio = lo->lo_flags & LO_FLAGS_DIRECT_IO;
lo->lo_device = bdev;
loop_assign_backing_file(lo, file);
@@ -39605,7 +39596,7 @@ index c8eba5ada9950..52b55a88c7af2 100644
lim = queue_limits_start_update(lo->lo_queue);
loop_update_limits(lo, &lim, config->block_size);
-@@ -1097,6 +1131,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1102,6 +1136,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
bd_abort_claiming(bdev, loop_configure);
out_putf:
fput(file);
@@ -39614,7 +39605,7 @@ index c8eba5ada9950..52b55a88c7af2 100644
/* This is safe: open() is still holding a reference. */
module_put(THIS_MODULE);
return error;
-@@ -1106,11 +1142,13 @@ static void __loop_clr_fd(struct loop_device *lo)
+@@ -1111,11 +1147,13 @@ static void __loop_clr_fd(struct loop_device *lo)
{
struct queue_limits lim;
struct file *filp;
@@ -39628,7 +39619,7 @@ index c8eba5ada9950..52b55a88c7af2 100644
spin_unlock_irq(&lo->lo_lock);
lo->lo_device = NULL;
-@@ -1172,6 +1210,8 @@ static void __loop_clr_fd(struct loop_device *lo)
+@@ -1177,6 +1215,8 @@ static void __loop_clr_fd(struct loop_device *lo)
* fput can take open_mutex which is usually taken before lo_mutex.
*/
fput(filp);
@@ -39651,17 +39642,17 @@ index cb5781e56e1e1..93e7a6a369d0a 100644
if (file->f_mapping != h_file->f_mapping) {
file->f_mapping = h_file->f_mapping;
diff --git a/fs/aufs/loop.c b/fs/aufs/loop.c
-index 69dea4cda00c0..92a74affb2208 100644
+index dc43d4074f0fb..c6c821c302b45 100644
--- a/fs/aufs/loop.c
+++ b/fs/aufs/loop.c
-@@ -133,3 +133,19 @@ void au_loopback_fin(void)
+@@ -142,3 +142,19 @@ void au_loopback_fin(void)
symbol_put(loop_backing_file);
au_kfree_try_rcu(au_warn_loopback_array);
}
+
+/* ---------------------------------------------------------------------- */
+
-+/* support the loopback block device insude aufs */
++/* support the loopback block device inside aufs */
+
+struct file *aufs_real_loop(struct file *file)
+{
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/5967703d89c3e8491a6048fa459c1c38ec50cc4d
More information about the pld-cvs-commit
mailing list