[packages/kernel] - sync aufs patch with upstream
baggins
baggins at pld-linux.org
Sun May 24 11:18:12 CEST 2026
commit 462f35f9e7698f98c5855640ad77c50465027697
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Sun May 24 11:17:51 2026 +0200
- sync aufs patch with upstream
kernel-aufs.patch | 346 ++++++++++++++++++++++++++++--------------------------
1 file changed, 180 insertions(+), 166 deletions(-)
---
diff --git a/kernel-aufs.patch b/kernel-aufs.patch
index c26bde26..8d77cf97 100644
--- a/kernel-aufs.patch
+++ b/kernel-aufs.patch
@@ -1,6 +1,6 @@
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 2026-04-20 13:41:05.024683291 +0200
++++ 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
@@ -59,7 +59,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 2026-04-20 13:41:05.025077435 +0200
++++ 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
@@ -94,7 +94,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 2026-04-20 13:43:42.057730253 +0200
++++ linux/Documentation/filesystems/aufs/design/01intro.txt 2026-04-24 21:34:40.149685874 +0200
@@ -0,0 +1,158 @@
+
+# Copyright (C) 2005-2026 Junjiro R. Okajima
@@ -256,7 +256,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 2026-04-20 13:43:42.058620909 +0200
++++ linux/Documentation/filesystems/aufs/design/02struct.txt 2026-04-24 21:34:40.149764063 +0200
@@ -0,0 +1,245 @@
+
+# Copyright (C) 2005-2026 Junjiro R. Okajima
@@ -505,7 +505,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 2026-04-20 13:43:42.058984964 +0200
++++ linux/Documentation/filesystems/aufs/design/03atomic_open.txt 2026-04-24 21:34:40.149764063 +0200
@@ -0,0 +1,72 @@
+
+# Copyright (C) 2015-2026 Junjiro R. Okajima
@@ -581,7 +581,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 2026-04-20 13:43:42.059491780 +0200
++++ linux/Documentation/filesystems/aufs/design/03lookup.txt 2026-04-24 21:34:40.149764063 +0200
@@ -0,0 +1,100 @@
+
+# Copyright (C) 2005-2026 Junjiro R. Okajima
@@ -685,7 +685,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 2026-04-20 13:43:42.059977110 +0200
++++ linux/Documentation/filesystems/aufs/design/04branch.txt 2026-04-24 21:34:40.149764063 +0200
@@ -0,0 +1,61 @@
+
+# Copyright (C) 2005-2026 Junjiro R. Okajima
@@ -750,7 +750,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 2026-04-20 13:43:42.060603083 +0200
++++ linux/Documentation/filesystems/aufs/design/05wbr_policy.txt 2026-04-24 21:34:40.149764063 +0200
@@ -0,0 +1,51 @@
+
+# Copyright (C) 2005-2026 Junjiro R. Okajima
@@ -805,7 +805,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 2026-04-20 13:43:42.061181826 +0200
++++ linux/Documentation/filesystems/aufs/design/06dirren.dot 2026-04-24 21:34:40.149764063 +0200
@@ -0,0 +1,31 @@
+
+// to view this graph, run dot(1) command in GRAPHVIZ.
@@ -840,7 +840,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 2026-04-20 13:43:42.061834350 +0200
++++ linux/Documentation/filesystems/aufs/design/06dirren.txt 2026-04-24 21:34:40.149764063 +0200
@@ -0,0 +1,89 @@
+
+# Copyright (C) 2017-2026 Junjiro R. Okajima
@@ -933,7 +933,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 2026-04-20 13:43:42.062371578 +0200
++++ linux/Documentation/filesystems/aufs/design/06fhsm.txt 2026-04-24 21:34:40.149764063 +0200
@@ -0,0 +1,105 @@
+
+# Copyright (C) 2011-2026 Junjiro R. Okajima
@@ -1042,7 +1042,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 2026-04-20 13:43:42.062911901 +0200
++++ linux/Documentation/filesystems/aufs/design/06mmap.txt 2026-04-24 21:34:40.149764063 +0200
@@ -0,0 +1,27 @@
+
+# Copyright (C) 2005-2026 Junjiro R. Okajima
@@ -1073,7 +1073,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 2026-04-20 13:43:42.063434157 +0200
++++ linux/Documentation/filesystems/aufs/design/06xattr.txt 2026-04-24 21:34:40.149764063 +0200
@@ -0,0 +1,81 @@
+
+# Copyright (C) 2014-2026 Junjiro R. Okajima
@@ -1158,7 +1158,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 2026-04-20 13:43:42.063989796 +0200
++++ linux/Documentation/filesystems/aufs/design/07export.txt 2026-04-24 21:34:40.149764063 +0200
@@ -0,0 +1,45 @@
+
+# Copyright (C) 2005-2026 Junjiro R. Okajima
@@ -1207,7 +1207,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 2026-04-20 13:43:42.064527855 +0200
++++ linux/Documentation/filesystems/aufs/design/08shwh.txt 2026-04-24 21:34:40.149764063 +0200
@@ -0,0 +1,39 @@
+
+# Copyright (C) 2005-2026 Junjiro R. Okajima
@@ -1250,7 +1250,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 2026-04-20 13:43:42.065046192 +0200
++++ linux/Documentation/filesystems/aufs/design/10dynop.txt 2026-04-24 21:34:40.149764063 +0200
@@ -0,0 +1,34 @@
+
+# Copyright (C) 2010-2026 Junjiro R. Okajima
@@ -1288,7 +1288,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 2026-04-20 13:43:42.056961632 +0200
++++ linux/Documentation/filesystems/aufs/README 2026-04-24 21:34:40.149564643 +0200
@@ -0,0 +1,398 @@
+
+Aufs7 -- advanced multi layered unification filesystem version 7.x
@@ -1690,7 +1690,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 2026-04-20 13:43:42.069019911 +0200
++++ linux/fs/aufs/aufs.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,49 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -1743,7 +1743,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 2026-04-20 13:43:42.069538354 +0200
++++ linux/fs/aufs/branch.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,1412 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -3159,7 +3159,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 2026-04-20 13:43:42.070303002 +0200
++++ linux/fs/aufs/branch.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,362 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -3525,7 +3525,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 2026-04-20 13:41:05.039983867 +0200
++++ linux/fs/aufs/conf.mk 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,40 @@
+# SPDX-License-Identifier: GPL-2.0
+
@@ -3569,7 +3569,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-04-20 13:43:42.071181885 +0200
++++ linux/fs/aufs/cpup.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,1439 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -5012,7 +5012,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 2026-04-20 13:43:42.072005972 +0200
++++ linux/fs/aufs/cpup.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,88 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -5104,7 +5104,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 2026-04-20 13:43:42.072480077 +0200
++++ linux/fs/aufs/dbgaufs.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,512 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -5620,7 +5620,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 2026-04-20 13:43:42.073021431 +0200
++++ linux/fs/aufs/dbgaufs.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -5664,7 +5664,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 2026-04-20 13:43:42.073565538 +0200
++++ linux/fs/aufs/dcsub.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,212 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -5880,7 +5880,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 2026-04-20 13:43:42.074072371 +0200
++++ linux/fs/aufs/dcsub.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,126 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -6010,7 +6010,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 2026-04-20 13:43:42.074632930 +0200
++++ linux/fs/aufs/debug.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,435 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -6449,7 +6449,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 2026-04-20 13:43:42.075218618 +0200
++++ linux/fs/aufs/debug.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,213 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -6666,7 +6666,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-04-20 13:43:42.075742820 +0200
++++ linux/fs/aufs/dentry.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,1217 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -7887,7 +7887,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 2026-04-20 13:43:42.076577104 +0200
++++ linux/fs/aufs/dentry.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,258 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -8149,7 +8149,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 2026-04-20 13:43:42.077196028 +0200
++++ linux/fs/aufs/dinfo.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,544 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -8697,7 +8697,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 2026-04-20 13:43:42.077841209 +0200
++++ linux/fs/aufs/dir.c 2026-05-13 01:29:20.693332780 +0200
@@ -0,0 +1,752 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -8874,7 +8874,7 @@ diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
+ if (!au_br_writable(perm))
+ goto out;
+
-+ arg = kmalloc(sizeof(*arg), GFP_NOFS);
++ arg = kmalloc_obj(*arg, GFP_NOFS);
+ if (!arg)
+ goto out;
+
@@ -9453,7 +9453,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 2026-04-20 13:43:42.078617312 +0200
++++ linux/fs/aufs/dir.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,121 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -9578,7 +9578,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-04-20 13:43:42.079195547 +0200
++++ linux/fs/aufs/dirren.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,1294 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -10876,7 +10876,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 2026-04-20 13:43:42.080100236 +0200
++++ linux/fs/aufs/dirren.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,127 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -11007,7 +11007,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 2026-04-20 13:43:42.080697981 +0200
++++ linux/fs/aufs/dynop.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,351 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -11362,7 +11362,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 2026-04-20 13:43:42.081291943 +0200
++++ linux/fs/aufs/dynop.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,64 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -11430,7 +11430,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 2026-04-20 13:43:42.081857148 +0200
++++ linux/fs/aufs/export.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,816 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -12250,7 +12250,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 2026-04-20 13:43:42.083347169 +0200
++++ linux/fs/aufs/fhsm.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,413 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -12667,7 +12667,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-04-20 13:43:42.083885281 +0200
++++ linux/fs/aufs/file.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,835 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -13506,7 +13506,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 2026-04-20 13:43:42.084550626 +0200
++++ linux/fs/aufs/file.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,314 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -13824,7 +13824,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 2026-04-20 13:43:42.085035176 +0200
++++ linux/fs/aufs/finfo.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,135 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -13963,7 +13963,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 2026-04-20 13:43:42.082631176 +0200
++++ linux/fs/aufs/f_op.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,778 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -14745,8 +14745,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 2026-04-20 13:43:42.085511584 +0200
-@@ -0,0 +1,1231 @@
++++ linux/fs/aufs/fsctx.c 2026-05-13 01:29:20.693332780 +0200
+@@ -0,0 +1,1232 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2022-2026 Junjiro R. Okajima
@@ -15816,9 +15816,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");
@@ -15980,7 +15981,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 2026-04-20 13:43:42.086210835 +0200
++++ linux/fs/aufs/fstype.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,406 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -16390,7 +16391,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 2026-04-20 13:43:42.086766722 +0200
++++ linux/fs/aufs/hbl.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,52 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -16446,7 +16447,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 2026-04-20 13:43:42.087236174 +0200
++++ linux/fs/aufs/hfsnotify.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,277 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -16727,7 +16728,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 2026-04-20 13:43:42.087745386 +0200
++++ linux/fs/aufs/hfsplus.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -16778,7 +16779,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 2026-04-20 13:43:42.088211970 +0200
++++ linux/fs/aufs/hnotify.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,702 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -17484,7 +17485,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-04-20 13:43:42.091756100 +0200
++++ linux/fs/aufs/iinfo.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,275 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -17763,7 +17764,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 2026-04-20 13:43:42.092318979 +0200
++++ linux/fs/aufs/inode.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,520 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -18287,7 +18288,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-04-20 13:43:42.092923932 +0200
++++ linux/fs/aufs/inode.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,716 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -19007,7 +19008,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 2026-04-20 13:43:42.093650137 +0200
++++ linux/fs/aufs/ioctl.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,207 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -19218,7 +19219,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-04-20 13:43:42.089649108 +0200
++++ linux/fs/aufs/i_op_add.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,943 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -20165,7 +20166,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-04-20 13:43:42.088828354 +0200
++++ linux/fs/aufs/i_op.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,1504 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -21673,7 +21674,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-04-20 13:43:42.090358984 +0200
++++ linux/fs/aufs/i_op_del.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,504 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -22181,7 +22182,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-04-20 13:43:42.091182003 +0200
++++ linux/fs/aufs/i_op_ren.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,1229 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -23414,7 +23415,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 2026-04-20 13:41:05.037250991 +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
@@ -23619,7 +23620,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 2026-04-20 13:43:42.094182021 +0200
++++ linux/fs/aufs/lcnt.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,173 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -23796,8 +23797,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 2026-04-20 13:43:42.094747100 +0200
-@@ -0,0 +1,135 @@
++++ linux/fs/aufs/loop.c 2026-05-24 11:15:13.176717211 +0200
+@@ -0,0 +1,144 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2026 Junjiro R. Okajima
@@ -23817,21 +23818,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;
+ /*
@@ -23839,8 +23842,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 */
@@ -23935,7 +23945,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 2026-04-20 13:43:42.095263755 +0200
++++ linux/fs/aufs/loop.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,42 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -23981,7 +23991,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 2026-04-20 13:43:42.095777754 +0200
++++ linux/fs/aufs/magic.mk 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,25 @@
+# SPDX-License-Identifier: GPL-2.0
+
@@ -24010,7 +24020,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 2026-04-20 13:43:42.068647206 +0200
++++ linux/fs/aufs/Makefile 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: GPL-2.0
+
@@ -24063,7 +24073,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 2026-04-20 13:43:42.096281579 +0200
++++ linux/fs/aufs/mf.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,119 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -24186,7 +24196,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 2026-04-20 13:43:42.096821934 +0200
++++ linux/fs/aufs/module.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,262 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -24452,7 +24462,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 2026-04-20 13:43:42.097337619 +0200
++++ linux/fs/aufs/module.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,167 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -24623,7 +24633,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-04-20 13:43:42.097819586 +0200
++++ linux/fs/aufs/mvdown.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,687 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -25314,7 +25324,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 2026-04-20 13:43:42.098512985 +0200
++++ linux/fs/aufs/opts.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,1017 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -26335,7 +26345,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 2026-04-20 13:43:42.099137899 +0200
++++ linux/fs/aufs/opts.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,251 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -26590,7 +26600,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-04-20 13:43:42.099614244 +0200
++++ linux/fs/aufs/plink.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,495 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -27089,7 +27099,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 2026-04-20 13:43:42.100109595 +0200
++++ linux/fs/aufs/poll.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -27131,7 +27141,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 2026-04-20 13:43:42.100556305 +0200
++++ linux/fs/aufs/posix_acl.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,95 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -27230,7 +27240,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 2026-04-20 13:43:42.101005668 +0200
++++ linux/fs/aufs/procfs.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,155 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -27389,7 +27399,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 2026-04-20 13:43:42.101469326 +0200
++++ linux/fs/aufs/rdu.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,371 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -27764,7 +27774,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 2026-04-20 13:43:42.101938286 +0200
++++ linux/fs/aufs/rwsem.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,76 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -27844,7 +27854,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 2026-04-20 13:43:42.102382688 +0200
++++ linux/fs/aufs/sbinfo.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,302 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -28150,7 +28160,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 2026-04-20 13:43:42.102858985 +0200
++++ linux/fs/aufs/super.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,858 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -29012,7 +29022,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 2026-04-20 13:43:42.103574044 +0200
++++ linux/fs/aufs/super.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,606 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -29622,7 +29632,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 2026-04-20 13:43:42.104184928 +0200
++++ linux/fs/aufs/sysaufs.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,81 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -29707,7 +29717,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 2026-04-20 13:43:42.104663012 +0200
++++ linux/fs/aufs/sysaufs.h 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,91 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -29802,7 +29812,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 2026-04-20 13:43:42.105114691 +0200
++++ linux/fs/aufs/sysfs.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,361 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -30167,7 +30177,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 2026-04-20 13:43:42.105610181 +0200
++++ linux/fs/aufs/sysrq.c 2026-04-24 21:34:40.150886425 +0200
@@ -0,0 +1,144 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -30315,7 +30325,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 2026-04-20 13:43:42.106182092 +0200
++++ linux/fs/aufs/vdir.c 2026-04-24 21:34:40.153340997 +0200
@@ -0,0 +1,883 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -31202,7 +31212,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-04-20 13:43:42.106715204 +0200
++++ linux/fs/aufs/vfsub.c 2026-04-24 21:34:40.153340997 +0200
@@ -0,0 +1,1039 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -32245,7 +32255,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-04-20 13:43:42.107339290 +0200
++++ linux/fs/aufs/vfsub.h 2026-04-24 21:34:40.153340997 +0200
@@ -0,0 +1,423 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -32672,7 +32682,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-04-20 13:43:42.107855417 +0200
++++ linux/fs/aufs/wbr_policy.c 2026-04-24 21:34:40.153340997 +0200
@@ -0,0 +1,828 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -33504,7 +33514,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-04-20 13:43:42.108495897 +0200
++++ linux/fs/aufs/whout.c 2026-04-24 21:34:40.153340997 +0200
@@ -0,0 +1,1060 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -34568,7 +34578,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 2026-04-20 13:43:42.109208724 +0200
++++ linux/fs/aufs/whout.h 2026-04-24 21:34:40.153340997 +0200
@@ -0,0 +1,74 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -34646,7 +34656,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 2026-04-20 13:43:42.109674270 +0200
++++ linux/fs/aufs/wkq.c 2026-04-24 21:34:40.153340997 +0200
@@ -0,0 +1,357 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -35007,7 +35017,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 2026-04-20 13:43:42.110157797 +0200
++++ linux/fs/aufs/wkq.h 2026-04-24 21:34:40.153340997 +0200
@@ -0,0 +1,76 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -35087,7 +35097,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 2026-04-20 13:43:42.110615324 +0200
++++ linux/fs/aufs/xattr.c 2026-04-24 21:34:40.153340997 +0200
@@ -0,0 +1,347 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -35438,7 +35448,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-04-20 13:43:42.111182122 +0200
++++ linux/fs/aufs/xino.c 2026-04-24 21:34:40.153340997 +0200
@@ -0,0 +1,1913 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -37355,7 +37365,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-04-20 19:05:38.896897231 +0200
++++ linux/include/uapi/linux/aufs_type.h 2026-05-24 11:15:13.176717211 +0200
@@ -0,0 +1,439 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
@@ -37386,7 +37396,7 @@ diff -urN /usr/share/empty/include/uapi/linux/aufs_type.h linux/include/uapi/lin
+#include <limits.h>
+#endif /* __KERNEL__ */
+
-+#define AUFS_VERSION "7.0-20260420"
++#define AUFS_VERSION "7.0-20260518"
+
+/* todo? move this to linux-2.6.19/include/magic.h */
+#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
@@ -37800,7 +37810,7 @@ SPDX-License-Identifier: GPL-2.0
aufs7.0 kbuild patch
diff --git a/fs/Kconfig b/fs/Kconfig
-index 0bfdaecaa877..22d84f31397c 100644
+index 0bfdaecaa8775..22d84f31397cb 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -332,6 +332,7 @@ source "fs/pstore/Kconfig"
@@ -37812,19 +37822,19 @@ index 0bfdaecaa877..22d84f31397c 100644
endif # MISC_FILESYSTEMS
diff --git a/fs/Makefile b/fs/Makefile
-index cf4a745e9679..115d521b01aa 100644
+index cf4a745e96798..31a5a0fb7fae5 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -129,3 +129,4 @@ obj-$(CONFIG_VBOXSF_FS) += vboxsf/
obj-$(CONFIG_ZONEFS_FS) += zonefs/
obj-$(CONFIG_BPF_LSM) += bpf_fs_kfuncs.o
obj-$(CONFIG_RESCTRL_FS) += resctrl/
-+obj-$(CONFIG_AUFS_FS) += aufs/
++obj-$(CONFIG_AUFS_FS) += aufs/
SPDX-License-Identifier: GPL-2.0
aufs7.0 base patch
diff --git a/MAINTAINERS b/MAINTAINERS
-index d1cc0e12fe1f..7a33d5b80baa 100644
+index d1cc0e12fe1f0..7a33d5b80baa0 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4231,6 +4231,19 @@ F: kernel/audit*
@@ -37848,16 +37858,15 @@ index d1cc0e12fe1f..7a33d5b80baa 100644
M: Rong Xu <xur at google.com>
M: Han Shen <shenhan at google.com>
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 0000913f7efc..e7dadac7dd17 100644
+index 0000913f7efcc..f016a310ca460 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
-@@ -630,6 +630,26 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -630,6 +630,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);
@@ -37865,11 +37874,17 @@ index 0000913f7efc..e7dadac7dd17 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;
+}
@@ -37879,7 +37894,7 @@ index 0000913f7efc..e7dadac7dd17 100644
static ssize_t loop_attr_show(struct device *dev, char *page,
diff --git a/fs/dcache.c b/fs/dcache.c
-index 7ba1801d8132..79b9f1a239d6 100644
+index 7ba1801d81329..79b9f1a239d6e 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -1311,6 +1311,10 @@ enum d_walk_ret {
@@ -37903,7 +37918,7 @@ index 7ba1801d8132..79b9f1a239d6 100644
{
struct dentry *this_parent, *dentry;
diff --git a/fs/exec.c b/fs/exec.c
-index 9ea3a775d51e..746e5fdab7b2 100644
+index 9ea3a775d51e9..746e5fdab7b2a 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -777,6 +777,9 @@ static struct file *do_open_execat(int fd, struct filename *name, int flags)
@@ -37917,7 +37932,7 @@ index 9ea3a775d51e..746e5fdab7b2 100644
file = do_file_open(fd, name, &open_exec_flags);
if (IS_ERR(file))
diff --git a/fs/fcntl.c b/fs/fcntl.c
-index beab8080badf..c9e5300ff82b 100644
+index beab8080badf6..c9e5300ff82b8 100644
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
@@ -36,7 +36,7 @@
@@ -37939,7 +37954,7 @@ index beab8080badf..c9e5300ff82b 100644
return error;
diff --git a/fs/fhandle.c b/fs/fhandle.c
-index 642e3d569497..ac33be836512 100644
+index 642e3d5694972..ac33be836512e 100644
--- a/fs/fhandle.c
+++ b/fs/fhandle.c
@@ -156,6 +156,9 @@ SYSCALL_DEFINE5(name_to_handle_at, int, dfd, const char __user *, name,
@@ -37953,7 +37968,7 @@ index 642e3d569497..ac33be836512 100644
err = filename_lookup(dfd, filename, lookup_flags, &path, NULL);
if (!err) {
diff --git a/fs/fsopen.c b/fs/fsopen.c
-index ae19e5136598..3725f6730b8e 100644
+index ae19e51365986..3725f6730b8e5 100644
--- a/fs/fsopen.c
+++ b/fs/fsopen.c
@@ -181,6 +181,9 @@ SYSCALL_DEFINE3(fspick, int, dfd, const char __user *, path, unsigned int, flags
@@ -37967,7 +37982,7 @@ index ae19e5136598..3725f6730b8e 100644
(flags & FSPICK_EMPTY_PATH) ? LOOKUP_EMPTY : 0);
ret = filename_lookup(dfd, filename, lookup_flags, &target, NULL);
diff --git a/fs/namespace.c b/fs/namespace.c
-index 854f4fc66469..f325581def78 100644
+index 854f4fc664697..f325581def786 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -3198,6 +3198,9 @@ static struct file *vfs_open_tree(int dfd, const char __user *filename, unsigned
@@ -37991,7 +38006,7 @@ index 854f4fc66469..f325581def78 100644
kattr = (struct mount_kattr) {
.lookup_flags = lookup_flags,
diff --git a/fs/open.c b/fs/open.c
-index 91f1139591ab..207d229a9069 100644
+index 91f1139591abe..207d229a90699 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -478,6 +478,9 @@ static int do_faccessat(int dfd, const char __user *filename, int mode, int flag
@@ -38025,7 +38040,7 @@ index 91f1139591ab..207d229a9069 100644
retry:
error = filename_lookup(dfd, name, lookup_flags, &path, NULL);
diff --git a/fs/splice.c b/fs/splice.c
-index 9d8f63e2fd1a..d2b70cb432d1 100644
+index 9d8f63e2fd1ab..d2b70cb432d1d 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -928,7 +928,7 @@ static int warn_unsupported(struct file *file, const char *op)
@@ -38038,7 +38053,7 @@ index 9d8f63e2fd1a..d2b70cb432d1 100644
{
if (unlikely(!out->f_op->splice_write))
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 8b3dd145b25e..53a16e37ccba 100644
+index 8b3dd145b25ec..53a16e37ccba4 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1389,6 +1389,7 @@ extern void fasync_free(struct fasync_struct *);
@@ -38058,7 +38073,7 @@ index 8b3dd145b25e..53a16e37ccba 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 621566345406..24d2eca0dc1d 100644
+index 621566345406d..24d2eca0dc1d0 100644
--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
@@ -210,6 +210,8 @@ static inline int lockdep_match_key(struct lockdep_map *lock,
@@ -38071,7 +38086,7 @@ index 621566345406..24d2eca0dc1d 100644
* Acquire a lock.
*
diff --git a/include/linux/splice.h b/include/linux/splice.h
-index 9dec4861d09f..14583d846864 100644
+index 9dec4861d09f6..14583d8468640 100644
--- a/include/linux/splice.h
+++ b/include/linux/splice.h
@@ -108,4 +108,7 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
@@ -38083,7 +38098,7 @@ index 9dec4861d09f..14583d846864 100644
+ loff_t *ppos, size_t len, unsigned int flags);
#endif
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index 2d4c5bab5af8..b720d966c7b9 100644
+index 2d4c5bab5af88..b720d966c7b92 100644
--- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c
@@ -224,7 +224,7 @@ unsigned long max_lock_class_idx;
@@ -38104,7 +38119,7 @@ index 2d4c5bab5af8..b720d966c7b9 100644
#ifdef CONFIG_LOCK_STAT
static DEFINE_PER_CPU(struct lock_class_stats[MAX_LOCKDEP_KEYS], cpu_lock_stats);
diff --git a/usr/include/Makefile b/usr/include/Makefile
-index 6d86a53c6f0a..37f8d2f7460e 100644
+index 6d86a53c6f0a3..37f8d2f7460e4 100644
--- a/usr/include/Makefile
+++ b/usr/include/Makefile
@@ -134,6 +134,8 @@ uses-libc += linux/wireless.h
@@ -38120,7 +38135,7 @@ SPDX-License-Identifier: GPL-2.0
aufs7.0 mmap patch
diff --git a/fs/Makefile b/fs/Makefile
-index 115d521b01aa..3ee30da8f1b5 100644
+index 31a5a0fb7fae5..3a6b76f1cce95 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -18,6 +18,12 @@ obj-y := open.o read_write.o file_table.o super.o \
@@ -38129,7 +38144,7 @@ index 115d521b01aa..3ee30da8f1b5 100644
+# 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)
++ifeq ($(CONFIG_AUFS_FS),m)
+obj-y += au_mf.o
+endif
+
@@ -38138,10 +38153,10 @@ index 115d521b01aa..3ee30da8f1b5 100644
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 000000000000..9cba15b883f1
+index 0000000000000..64c4d93ba9f50
--- /dev/null
+++ b/fs/au_mf.c
-@@ -0,0 +1,60 @@
+@@ -0,0 +1,59 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2025-2026 Junjiro R. Okajima
@@ -38165,9 +38180,8 @@ index 000000000000..9cba15b883f1
+
+const struct path *au_file_user_path(const struct file *f)
+{
-+ const struct path *path,
-+ *(*func)(const struct file *f),
-+ *au_do_file_user_path(const 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);
@@ -38203,7 +38217,7 @@ index 000000000000..9cba15b883f1
+}
+EXPORT_SYMBOL_GPL(au_file_user_inode);
diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 4c863d17dfb4..c338133330c6 100644
+index 4c863d17dfb4c..c338133330c60 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -1788,7 +1788,7 @@ static int proc_exe_link(struct dentry *dentry, struct path *exe_path)
@@ -38216,7 +38230,7 @@ index 4c863d17dfb4..c338133330c6 100644
fput(exe_file);
return 0;
diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
-index c6e7ebc63756..12c340dcdec3 100644
+index c6e7ebc637562..12c340dcdec3d 100644
--- a/fs/proc/nommu.c
+++ b/fs/proc/nommu.c
@@ -39,7 +39,7 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
@@ -38229,7 +38243,7 @@ index c6e7ebc63756..12c340dcdec3 100644
ino = inode->i_ino;
}
diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
-index d362919f4f68..79a2590d40f4 100644
+index d362919f4f688..79a2590d40f4d 100644
--- a/fs/proc/task_nommu.c
+++ b/fs/proc/task_nommu.c
@@ -137,7 +137,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma)
@@ -38242,12 +38256,12 @@ index d362919f4f68..79a2590d40f4 100644
ino = inode->i_ino;
pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 53a16e37ccba..518c6a8a746d 100644
+index 53a16e37ccba4..518c6a8a746d7 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2477,6 +2477,21 @@ struct file *dentry_create(struct path *path, int flags, umode_t mode,
- }
- #endif /* CONFIG_SECURITY */
+ const struct cred *cred);
+ const struct path *backing_file_user_path(const struct file *f);
+#if IS_MODULE(CONFIG_AUFS_FS)
+/* fs/au_mf.c */
@@ -38297,7 +38311,7 @@ SPDX-License-Identifier: GPL-2.0
aufs7.0 standalone patch
diff --git a/fs/dcache.c b/fs/dcache.c
-index 79b9f1a239d6..2304ef273e3f 100644
+index 79b9f1a239d6e..2304ef273e3f9 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -1422,6 +1422,7 @@ void d_walk(struct dentry *parent, void *data,
@@ -38309,7 +38323,7 @@ index 79b9f1a239d6..2304ef273e3f 100644
struct check_mount {
struct vfsmount *mnt;
diff --git a/fs/exec.c b/fs/exec.c
-index 746e5fdab7b2..4d936496b631 100644
+index 746e5fdab7b2a..4d936496b6315 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -120,6 +120,7 @@ bool path_noexec(const struct path *path)
@@ -38321,7 +38335,7 @@ index 746e5fdab7b2..4d936496b631 100644
#ifdef CONFIG_MMU
/*
diff --git a/fs/fcntl.c b/fs/fcntl.c
-index c9e5300ff82b..92255e819fb0 100644
+index c9e5300ff82b8..92255e819fb08 100644
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
@@ -89,6 +89,7 @@ int setfl(int fd, struct file * filp, unsigned int arg)
@@ -38333,7 +38347,7 @@ index c9e5300ff82b..92255e819fb0 100644
/*
* Allocate an file->f_owner struct if it doesn't exist, handling racing
diff --git a/fs/file_table.c b/fs/file_table.c
-index aaa5faaace1e..2619d87cb4a8 100644
+index aaa5faaace1e9..2619d87cb4a85 100644
--- a/fs/file_table.c
+++ b/fs/file_table.c
@@ -256,6 +256,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
@@ -38345,7 +38359,7 @@ index aaa5faaace1e..2619d87cb4a8 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 f325581def78..68a32452a3e4 100644
+index f325581def786..68a32452a3e4b 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -6293,6 +6293,7 @@ bool our_mnt(struct vfsmount *mnt)
@@ -38357,7 +38371,7 @@ index f325581def78..68a32452a3e4 100644
bool current_chrooted(void)
{
diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
-index 9995de1710e5..8593d0972802 100644
+index 9995de1710e59..6c33ace511198 100644
--- a/fs/notify/fsnotify.c
+++ b/fs/notify/fsnotify.c
@@ -169,6 +169,11 @@ int fsnotify_pre_content(const struct path *path, const loff_t *ppos,
@@ -38366,14 +38380,14 @@ index 9995de1710e5..8593d0972802 100644
}
+/*
+ * a module calls fsnotify_truncate_perm() which is an inlined function and
-+ * calls fsnotify_pre_content(). Finaly the function has to be exported.
++ * calls fsnotify_pre_content(). Finally the function has to be exported.
+*/
+EXPORT_SYMBOL_GPL(fsnotify_pre_content);
/*
* Notify this dentry's parent about a child's events with child name info
diff --git a/fs/notify/group.c b/fs/notify/group.c
-index b56d1c1d9644..9e2d893a3371 100644
+index b56d1c1d9644a..9e2d893a3371d 100644
--- a/fs/notify/group.c
+++ b/fs/notify/group.c
@@ -100,6 +100,7 @@ void fsnotify_get_group(struct fsnotify_group *group)
@@ -38385,7 +38399,7 @@ index b56d1c1d9644..9e2d893a3371 100644
/*
* Drop a reference to a group. Free it if it's through.
diff --git a/fs/open.c b/fs/open.c
-index 207d229a9069..1e2c9069d458 100644
+index 207d229a90699..1e2c9069d458c 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -69,6 +69,7 @@ int do_truncate(struct mnt_idmap *idmap, struct dentry *dentry,
@@ -38397,7 +38411,7 @@ index 207d229a9069..1e2c9069d458 100644
int vfs_truncate(const struct path *path, loff_t length)
{
diff --git a/fs/read_write.c b/fs/read_write.c
-index 50bff7edc91f..ab1128eaffd4 100644
+index 50bff7edc91f3..ab1128eaffd4e 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -581,6 +581,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
@@ -38417,7 +38431,7 @@ index 50bff7edc91f..ab1128eaffd4 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 d2b70cb432d1..81deb01e8ec0 100644
+index d2b70cb432d1d..81deb01e8ec02 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -935,6 +935,7 @@ ssize_t do_splice_from(struct pipe_inode_info *pipe, struct file *out,
@@ -38429,7 +38443,7 @@ index d2b70cb432d1..81deb01e8ec0 100644
/*
* Indicate to the caller that there was a premature EOF when reading from the
diff --git a/fs/xattr.c b/fs/xattr.c
-index 3e49e612e1ba..5c15a7119eca 100644
+index 3e49e612e1bad..5c15a7119eca3 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
@@ -405,6 +405,7 @@ vfs_getxattr_alloc(struct mnt_idmap *idmap, struct dentry *dentry,
@@ -38441,7 +38455,7 @@ index 3e49e612e1ba..5c15a7119eca 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 b720d966c7b9..02c8ce18d6e0 100644
+index b720d966c7b92..02c8ce18d6e0d 100644
--- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c
@@ -245,6 +245,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock)
@@ -38453,7 +38467,7 @@ index b720d966c7b9..02c8ce18d6e0 100644
#ifdef CONFIG_LOCK_STAT
diff --git a/kernel/task_work.c b/kernel/task_work.c
-index 0f7519f8e7c9..96c8ae627018 100644
+index 0f7519f8e7c93..96c8ae6270187 100644
--- a/kernel/task_work.c
+++ b/kernel/task_work.c
@@ -236,3 +236,4 @@ void task_work_run(void)
@@ -38462,7 +38476,7 @@ index 0f7519f8e7c9..96c8ae627018 100644
}
+EXPORT_SYMBOL_GPL(task_work_run);
diff --git a/security/security.c b/security/security.c
-index a26c1474e2e4..2f19df631404 100644
+index a26c1474e2e49..2f19df6314041 100644
--- a/security/security.c
+++ b/security/security.c
@@ -1406,6 +1406,7 @@ void security_path_post_mknod(struct mnt_idmap *idmap, struct dentry *dentry)
@@ -38541,7 +38555,7 @@ SPDX-License-Identifier: GPL-2.0
aufs7.0 loopback patch
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index e7dadac7dd17..9e770576a072 100644
+index f016a310ca460..403de57f05174 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -52,7 +52,7 @@ struct loop_device {
@@ -38625,7 +38639,7 @@ index e7dadac7dd17..9e770576a072 100644
dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
goto done;
}
-@@ -1003,6 +1028,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1008,6 +1033,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
const struct loop_config *config)
{
struct file *file = fget(config->fd);
@@ -38633,7 +38647,7 @@ index e7dadac7dd17..9e770576a072 100644
struct queue_limits lim;
int error;
loff_t size;
-@@ -1023,6 +1049,13 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1028,6 +1054,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);
@@ -38647,7 +38661,7 @@ index e7dadac7dd17..9e770576a072 100644
/*
* If we don't hold exclusive handle for the device, upgrade to it
* here to avoid changing device under exclusive owner.
-@@ -1077,6 +1110,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1082,6 +1115,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
lo->lo_device = bdev;
loop_assign_backing_file(lo, file);
@@ -38655,7 +38669,7 @@ index e7dadac7dd17..9e770576a072 100644
lim = queue_limits_start_update(lo->lo_queue);
loop_update_limits(lo, &lim, config->block_size);
-@@ -1127,6 +1161,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1132,6 +1166,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
bd_abort_claiming(bdev, loop_configure);
out_putf:
fput(file);
@@ -38664,7 +38678,7 @@ index e7dadac7dd17..9e770576a072 100644
/* This is safe: open() is still holding a reference. */
module_put(THIS_MODULE);
return error;
-@@ -1136,11 +1172,13 @@ static void __loop_clr_fd(struct loop_device *lo)
+@@ -1141,11 +1177,13 @@ static void __loop_clr_fd(struct loop_device *lo)
{
struct queue_limits lim;
struct file *filp;
@@ -38678,7 +38692,7 @@ index e7dadac7dd17..9e770576a072 100644
spin_unlock_irq(&lo->lo_lock);
lo->lo_device = NULL;
-@@ -1207,6 +1245,8 @@ static void __loop_clr_fd(struct loop_device *lo)
+@@ -1212,6 +1250,8 @@ static void __loop_clr_fd(struct loop_device *lo)
* fput can take open_mutex which is usually taken before lo_mutex.
*/
fput(filp);
@@ -38688,7 +38702,7 @@ index e7dadac7dd17..9e770576a072 100644
static int loop_clr_fd(struct loop_device *lo)
diff --git a/fs/aufs/f_op.c b/fs/aufs/f_op.c
-index 75977325091b..6dc08b1353f2 100644
+index 75977325091bd..6dc08b1353f21 100644
--- a/fs/aufs/f_op.c
+++ b/fs/aufs/f_op.c
@@ -326,7 +326,7 @@ static ssize_t aufs_read_iter(struct kiocb *kio, struct iov_iter *iov_iter)
@@ -38701,10 +38715,10 @@ index 75977325091b..6dc08b1353f2 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 51bb8e830e91..b232e28ff73c 100644
+index 98ce2f2e4e562..401e65890f4c9 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);
}
@@ -38725,7 +38739,7 @@ index 51bb8e830e91..b232e28ff73c 100644
+ return f;
+}
diff --git a/fs/aufs/loop.h b/fs/aufs/loop.h
-index 9c732a84586b..82d28e85434f 100644
+index 9c732a84586b3..82d28e85434fa 100644
--- a/fs/aufs/loop.h
+++ b/fs/aufs/loop.h
@@ -26,6 +26,8 @@ void au_warn_loopback(struct super_block *h_sb);
@@ -38747,7 +38761,7 @@ index 9c732a84586b..82d28e85434f 100644
#endif /* __KERNEL__ */
diff --git a/fs/aufs/super.c b/fs/aufs/super.c
-index e3243187beb6..41e0bcb2d92c 100644
+index e3243187beb6f..41e0bcb2d92c4 100644
--- a/fs/aufs/super.c
+++ b/fs/aufs/super.c
@@ -757,7 +757,10 @@ const struct super_operations aufs_sop = {
@@ -38763,7 +38777,7 @@ index e3243187beb6..41e0bcb2d92c 100644
/* ---------------------------------------------------------------------- */
diff --git a/include/linux/fs/super_types.h b/include/linux/fs/super_types.h
-index 383050e7fdf5..30a1dd86247e 100644
+index 383050e7fdf57..30a1dd86247e1 100644
--- a/include/linux/fs/super_types.h
+++ b/include/linux/fs/super_types.h
@@ -127,6 +127,11 @@ struct super_operations {
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/462f35f9e7698f98c5855640ad77c50465027697
More information about the pld-cvs-commit
mailing list