kernel-6.12.94

This commit is contained in:
Rmys
2026-06-20 18:15:28 +03:00
parent e2701706c8
commit 6d1471b27f
9 changed files with 176 additions and 239 deletions
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86_64 6.12.89 Kernel Configuration
# Linux/x86_64 6.12.94 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (Pisi Linux) 15.2.0"
CONFIG_CC_IS_GCC=y
@@ -26,16 +26,15 @@ index b878ddc99f94e..8489754030b99 100644
M: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
R: Dave Ertman <david.m.ertman@intel.com>
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 78a7bb28defe4..479480f25a6c0 100644
index 78a7bb28defe4..afea5819d150d 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -661,6 +661,26 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
@@ -661,6 +661,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);
@@ -43,11 +42,17 @@ index 78a7bb28defe4..479480f25a6c0 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;
+}
@@ -14,11 +14,11 @@ index aae170fc27952..d5bb584649f50 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/
@@ -2,7 +2,7 @@ SPDX-License-Identifier: GPL-2.0
aufs6.12 loopback patch
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 479480f25a6c0..ba3477c30e294 100644
index afea5819d150d..965a004a13a8d 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -54,7 +54,7 @@ struct loop_device {
@@ -84,7 +84,7 @@ index 479480f25a6c0..ba3477c30e294 100644
goto done;
}
@@ -1039,6 +1062,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
@@ -1044,6 +1067,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
const struct loop_config *config)
{
struct file *file = fget(config->fd);
@@ -92,7 +92,7 @@ index 479480f25a6c0..ba3477c30e294 100644
struct address_space *mapping;
int error;
loff_t size;
@@ -1052,6 +1076,13 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
@@ -1057,6 +1081,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);
@@ -106,7 +106,7 @@ index 479480f25a6c0..ba3477c30e294 100644
/*
* If we don't hold exclusive handle for the device, upgrade to it
* here to avoid changing device under exclusive owner.
@@ -1108,6 +1139,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
@@ -1113,6 +1144,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;
lo->lo_backing_file = file;
@@ -114,7 +114,7 @@ index 479480f25a6c0..ba3477c30e294 100644
lo->old_gfp_mask = mapping_gfp_mask(mapping);
mapping_set_gfp_mask(mapping, lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
@@ -1150,6 +1182,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
@@ -1155,6 +1187,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
bd_abort_claiming(bdev, loop_configure);
out_putf:
fput(file);
@@ -123,7 +123,7 @@ index 479480f25a6c0..ba3477c30e294 100644
/* This is safe: open() is still holding a reference. */
module_put(THIS_MODULE);
return error;
@@ -1159,11 +1193,13 @@ static void __loop_clr_fd(struct loop_device *lo)
@@ -1164,11 +1198,13 @@ static void __loop_clr_fd(struct loop_device *lo)
{
struct queue_limits lim;
struct file *filp;
@@ -137,7 +137,7 @@ index 479480f25a6c0..ba3477c30e294 100644
spin_unlock_irq(&lo->lo_lock);
lo->lo_device = NULL;
@@ -1225,6 +1261,8 @@ static void __loop_clr_fd(struct loop_device *lo)
@@ -1230,6 +1266,8 @@ static void __loop_clr_fd(struct loop_device *lo)
* fput can take open_mutex which is usually taken before lo_mutex.
*/
fput(filp);
@@ -160,17 +160,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)
+{
@@ -2,7 +2,7 @@ SPDX-License-Identifier: GPL-2.0
aufs6.12 mmap patch
diff --git a/fs/Makefile b/fs/Makefile
index b2539712b80d0..4ba97a539035c 100644
index 62a96f5053579..4544ef689c75e 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -17,6 +17,12 @@ obj-y := open.o read_write.o file_table.o super.o \
@@ -11,7 +11,7 @@ index b2539712b80d0..4ba97a539035c 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
+
@@ -20,10 +20,10 @@ index b2539712b80d0..4ba97a539035c 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 0000000000000..aaf6a1f91f719
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
@@ -47,9 +47,8 @@ index 0000000000000..aaf6a1f91f719
+
+const struct path *au_file_user_path(struct file *f)
+{
+ const struct path *path,
+ *(*func)(struct file *f),
+ *au_do_file_user_path(struct file *f);
+ const struct path *path, *(*func)(struct file *f);
+ const struct path *au_do_file_user_path(struct file *f);
+
+ path = NULL;
+ func = symbol_get(au_do_file_user_path);
@@ -85,18 +84,20 @@ index 0000000000000..aaf6a1f91f719
+}
+EXPORT_SYMBOL_GPL(au_file_user_inode);
diff --git a/fs/proc/base.c b/fs/proc/base.c
index b31283d81c52e..d738243b88746 100644
index b31283d81c52e..c32417053ce97 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
@@ -1,6 +1,6 @@
diff -Naur null/Documentation/ABI/testing/debugfs-aufs linux-6.12.30/Documentation/ABI/testing/debugfs-aufs
--- /dev/null
+++ linux-6.12.30/Documentation/ABI/testing/debugfs-aufs 2026-03-25 14:52:47.431348885 +0300
+++ linux-6.12.30/Documentation/ABI/testing/debugfs-aufs 2026-06-20 18:11:10.316505256 +0300
@@ -0,0 +1,55 @@
+What: /debug/aufs/si_<id>/
+Date: March 2009
@@ -59,7 +59,7 @@ diff -Naur null/Documentation/ABI/testing/debugfs-aufs linux-6.12.30/Documentati
+ will be empty. About XINO files, see the aufs manual.
diff -Naur null/Documentation/ABI/testing/sysfs-aufs linux-6.12.30/Documentation/ABI/testing/sysfs-aufs
--- /dev/null
+++ linux-6.12.30/Documentation/ABI/testing/sysfs-aufs 2026-03-25 14:52:47.431530892 +0300
+++ linux-6.12.30/Documentation/ABI/testing/sysfs-aufs 2026-06-20 18:11:10.316505256 +0300
@@ -0,0 +1,31 @@
+What: /sys/fs/aufs/si_<id>/
+Date: March 2009
@@ -94,7 +94,7 @@ diff -Naur null/Documentation/ABI/testing/sysfs-aufs linux-6.12.30/Documentation
+ will be empty. About XINO files, see the aufs manual.
diff -Naur null/Documentation/filesystems/aufs/design/01intro.txt linux-6.12.30/Documentation/filesystems/aufs/design/01intro.txt
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/01intro.txt 2026-03-25 14:52:47.431933736 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/01intro.txt 2026-06-20 18:11:10.317505256 +0300
@@ -0,0 +1,171 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -269,7 +269,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/01intro.txt linux-6.12.30/
+about it. But currently I have implemented it in kernel space.
diff -Naur null/Documentation/filesystems/aufs/design/02struct.txt linux-6.12.30/Documentation/filesystems/aufs/design/02struct.txt
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/02struct.txt 2026-03-25 14:52:47.432142492 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/02struct.txt 2026-06-20 18:11:10.317505256 +0300
@@ -0,0 +1,258 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -531,7 +531,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/02struct.txt linux-6.12.30
+For this purpose, use "aumvdown" command in aufs-util.git.
diff -Naur null/Documentation/filesystems/aufs/design/03atomic_open.txt linux-6.12.30/Documentation/filesystems/aufs/design/03atomic_open.txt
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/03atomic_open.txt 2026-03-25 14:52:47.432142492 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/03atomic_open.txt 2026-06-20 18:11:10.317505256 +0300
@@ -0,0 +1,85 @@
+
+# Copyright (C) 2015-2025 Junjiro R. Okajima
@@ -620,7 +620,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/03atomic_open.txt linux-6.
+ be implemented in aufs, but not all I am afraid.
diff -Naur null/Documentation/filesystems/aufs/design/03lookup.txt linux-6.12.30/Documentation/filesystems/aufs/design/03lookup.txt
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/03lookup.txt 2026-03-25 14:52:47.432142492 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/03lookup.txt 2026-06-20 18:11:10.317505256 +0300
@@ -0,0 +1,113 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -737,7 +737,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/03lookup.txt linux-6.12.30
+ by over-mounting something (or another method).
diff -Naur null/Documentation/filesystems/aufs/design/04branch.txt linux-6.12.30/Documentation/filesystems/aufs/design/04branch.txt
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/04branch.txt 2026-03-25 14:52:47.432142492 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/04branch.txt 2026-06-20 18:11:10.317505256 +0300
@@ -0,0 +1,74 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -815,7 +815,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/04branch.txt linux-6.12.30
+ same named entry on the upper branch.
diff -Naur null/Documentation/filesystems/aufs/design/05wbr_policy.txt linux-6.12.30/Documentation/filesystems/aufs/design/05wbr_policy.txt
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/05wbr_policy.txt 2026-03-25 14:52:47.432142492 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/05wbr_policy.txt 2026-06-20 18:11:10.317505256 +0300
@@ -0,0 +1,64 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -883,7 +883,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/05wbr_policy.txt linux-6.1
+ copyup policy.
diff -Naur null/Documentation/filesystems/aufs/design/06dirren.dot linux-6.12.30/Documentation/filesystems/aufs/design/06dirren.dot
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/06dirren.dot 2026-03-25 14:52:47.432142492 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/06dirren.dot 2026-06-20 18:11:10.317505256 +0300
@@ -0,0 +1,44 @@
+
+// to view this graph, run dot(1) command in GRAPHVIZ.
@@ -931,7 +931,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/06dirren.dot linux-6.12.30
+}
diff -Naur null/Documentation/filesystems/aufs/design/06dirren.txt linux-6.12.30/Documentation/filesystems/aufs/design/06dirren.txt
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/06dirren.txt 2026-03-25 14:52:47.432142492 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/06dirren.txt 2026-06-20 18:11:10.318505256 +0300
@@ -0,0 +1,102 @@
+
+# Copyright (C) 2017-2025 Junjiro R. Okajima
@@ -1037,7 +1037,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/06dirren.txt linux-6.12.30
+equivalen to udba=reval case.
diff -Naur null/Documentation/filesystems/aufs/design/06fhsm.txt linux-6.12.30/Documentation/filesystems/aufs/design/06fhsm.txt
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/06fhsm.txt 2026-03-25 14:52:47.432142492 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/06fhsm.txt 2026-06-20 18:11:10.318505256 +0300
@@ -0,0 +1,118 @@
+
+# Copyright (C) 2011-2025 Junjiro R. Okajima
@@ -1159,7 +1159,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/06fhsm.txt linux-6.12.30/D
+should restore the original file state after an error happens.
diff -Naur null/Documentation/filesystems/aufs/design/06mmap.txt linux-6.12.30/Documentation/filesystems/aufs/design/06mmap.txt
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/06mmap.txt 2026-03-25 14:52:47.432142492 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/06mmap.txt 2026-06-20 18:11:10.318505256 +0300
@@ -0,0 +1,40 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -1203,7 +1203,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/06mmap.txt linux-6.12.30/D
+will be much smaller than the approach aufs used to take.
diff -Naur null/Documentation/filesystems/aufs/design/06xattr.txt linux-6.12.30/Documentation/filesystems/aufs/design/06xattr.txt
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/06xattr.txt 2026-03-25 14:52:47.432142492 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/06xattr.txt 2026-06-20 18:11:10.318505256 +0300
@@ -0,0 +1,94 @@
+
+# Copyright (C) 2014-2025 Junjiro R. Okajima
@@ -1301,7 +1301,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/06xattr.txt linux-6.12.30/
+now, aufs implements the branch attributes to ignore the error.
diff -Naur null/Documentation/filesystems/aufs/design/07export.txt linux-6.12.30/Documentation/filesystems/aufs/design/07export.txt
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/07export.txt 2026-03-25 14:52:47.432142492 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/07export.txt 2026-06-20 18:11:10.318505256 +0300
@@ -0,0 +1,58 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -1363,7 +1363,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/07export.txt linux-6.12.30
+ lookup_one_len(), vfs_getattr(), encode_fh() and others.
diff -Naur null/Documentation/filesystems/aufs/design/08shwh.txt linux-6.12.30/Documentation/filesystems/aufs/design/08shwh.txt
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/08shwh.txt 2026-03-25 14:52:47.432142492 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/08shwh.txt 2026-06-20 18:11:10.318505256 +0300
@@ -0,0 +1,52 @@
+
+# Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -1419,7 +1419,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/08shwh.txt linux-6.12.30/D
+initramfs will use it to replace the old one at the next boot.
diff -Naur null/Documentation/filesystems/aufs/design/10dynop.txt linux-6.12.30/Documentation/filesystems/aufs/design/10dynop.txt
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/design/10dynop.txt 2026-03-25 14:52:47.432142492 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/design/10dynop.txt 2026-06-20 18:11:10.318505256 +0300
@@ -0,0 +1,47 @@
+
+# Copyright (C) 2010-2025 Junjiro R. Okajima
@@ -1470,7 +1470,7 @@ diff -Naur null/Documentation/filesystems/aufs/design/10dynop.txt linux-6.12.30/
+regular files only.
diff -Naur null/Documentation/filesystems/aufs/README linux-6.12.30/Documentation/filesystems/aufs/README
--- /dev/null
+++ linux-6.12.30/Documentation/filesystems/aufs/README 2026-03-25 14:52:47.431700815 +0300
+++ linux-6.12.30/Documentation/filesystems/aufs/README 2026-06-20 18:11:10.317505256 +0300
@@ -0,0 +1,409 @@
+
+Aufs6 -- advanced multi layered unification filesystem version 6.x
@@ -1883,7 +1883,7 @@ diff -Naur null/Documentation/filesystems/aufs/README linux-6.12.30/Documentatio
+# End: ;
diff -Naur null/fs/aufs/aufs.h linux-6.12.30/fs/aufs/aufs.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/aufs.h 2026-03-25 14:52:47.434610124 +0300
+++ linux-6.12.30/fs/aufs/aufs.h 2026-06-20 18:11:10.320505256 +0300
@@ -0,0 +1,62 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -1949,7 +1949,7 @@ diff -Naur null/fs/aufs/aufs.h linux-6.12.30/fs/aufs/aufs.h
+#endif /* __AUFS_H__ */
diff -Naur null/fs/aufs/branch.c linux-6.12.30/fs/aufs/branch.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/branch.c 2026-03-25 14:52:47.434610124 +0300
+++ linux-6.12.30/fs/aufs/branch.c 2026-06-20 18:11:10.320505256 +0300
@@ -0,0 +1,1427 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -3380,7 +3380,7 @@ diff -Naur null/fs/aufs/branch.c linux-6.12.30/fs/aufs/branch.c
+}
diff -Naur null/fs/aufs/branch.h linux-6.12.30/fs/aufs/branch.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/branch.h 2026-03-25 14:52:47.434610124 +0300
+++ linux-6.12.30/fs/aufs/branch.h 2026-06-20 18:11:10.320505256 +0300
@@ -0,0 +1,375 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -3759,7 +3759,7 @@ diff -Naur null/fs/aufs/branch.h linux-6.12.30/fs/aufs/branch.h
+#endif /* __AUFS_BRANCH_H__ */
diff -Naur null/fs/aufs/conf.mk linux-6.12.30/fs/aufs/conf.mk
--- /dev/null
+++ linux-6.12.30/fs/aufs/conf.mk 2026-03-25 14:52:47.434610124 +0300
+++ linux-6.12.30/fs/aufs/conf.mk 2026-06-20 18:11:10.320505256 +0300
@@ -0,0 +1,40 @@
+# SPDX-License-Identifier: GPL-2.0
+
@@ -3803,7 +3803,7 @@ diff -Naur null/fs/aufs/conf.mk linux-6.12.30/fs/aufs/conf.mk
+-include ${srctree}/${src}/conf_priv.mk
diff -Naur null/fs/aufs/cpup.c linux-6.12.30/fs/aufs/cpup.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/cpup.c 2026-03-25 14:52:47.434610124 +0300
+++ linux-6.12.30/fs/aufs/cpup.c 2026-06-20 18:11:10.320505256 +0300
@@ -0,0 +1,1446 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -5253,7 +5253,7 @@ diff -Naur null/fs/aufs/cpup.c linux-6.12.30/fs/aufs/cpup.c
+}
diff -Naur null/fs/aufs/cpup.h linux-6.12.30/fs/aufs/cpup.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/cpup.h 2026-03-25 14:52:47.434610124 +0300
+++ linux-6.12.30/fs/aufs/cpup.h 2026-06-20 18:11:10.320505256 +0300
@@ -0,0 +1,101 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -5358,7 +5358,7 @@ diff -Naur null/fs/aufs/cpup.h linux-6.12.30/fs/aufs/cpup.h
+#endif /* __AUFS_CPUP_H__ */
diff -Naur null/fs/aufs/dbgaufs.c linux-6.12.30/fs/aufs/dbgaufs.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/dbgaufs.c 2026-03-25 14:52:47.434610124 +0300
+++ linux-6.12.30/fs/aufs/dbgaufs.c 2026-06-20 18:11:10.321505257 +0300
@@ -0,0 +1,526 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -5888,7 +5888,7 @@ diff -Naur null/fs/aufs/dbgaufs.c linux-6.12.30/fs/aufs/dbgaufs.c
+}
diff -Naur null/fs/aufs/dbgaufs.h linux-6.12.30/fs/aufs/dbgaufs.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/dbgaufs.h 2026-03-25 14:52:47.434610124 +0300
+++ linux-6.12.30/fs/aufs/dbgaufs.h 2026-06-20 18:11:10.321505257 +0300
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -5945,7 +5945,7 @@ diff -Naur null/fs/aufs/dbgaufs.h linux-6.12.30/fs/aufs/dbgaufs.h
+#endif /* __DBGAUFS_H__ */
diff -Naur null/fs/aufs/dcsub.c linux-6.12.30/fs/aufs/dcsub.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/dcsub.c 2026-03-25 14:52:47.434610124 +0300
+++ linux-6.12.30/fs/aufs/dcsub.c 2026-06-20 18:11:10.321505257 +0300
@@ -0,0 +1,225 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -6174,7 +6174,7 @@ diff -Naur null/fs/aufs/dcsub.c linux-6.12.30/fs/aufs/dcsub.c
+}
diff -Naur null/fs/aufs/dcsub.h linux-6.12.30/fs/aufs/dcsub.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/dcsub.h 2026-03-25 14:52:47.435035737 +0300
+++ linux-6.12.30/fs/aufs/dcsub.h 2026-06-20 18:11:10.321505257 +0300
@@ -0,0 +1,139 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -6317,7 +6317,7 @@ diff -Naur null/fs/aufs/dcsub.h linux-6.12.30/fs/aufs/dcsub.h
+#endif /* __AUFS_DCSUB_H__ */
diff -Naur null/fs/aufs/debug.c linux-6.12.30/fs/aufs/debug.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/debug.c 2026-03-25 14:52:47.435035737 +0300
+++ linux-6.12.30/fs/aufs/debug.c 2026-06-20 18:11:10.321505257 +0300
@@ -0,0 +1,448 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -6769,7 +6769,7 @@ diff -Naur null/fs/aufs/debug.c linux-6.12.30/fs/aufs/debug.c
+}
diff -Naur null/fs/aufs/debug.h linux-6.12.30/fs/aufs/debug.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/debug.h 2026-03-25 14:52:47.435035737 +0300
+++ linux-6.12.30/fs/aufs/debug.h 2026-06-20 18:11:10.321505257 +0300
@@ -0,0 +1,226 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -6999,7 +6999,7 @@ diff -Naur null/fs/aufs/debug.h linux-6.12.30/fs/aufs/debug.h
+#endif /* __AUFS_DEBUG_H__ */
diff -Naur null/fs/aufs/dentry.c linux-6.12.30/fs/aufs/dentry.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/dentry.c 2026-03-25 14:52:47.435035737 +0300
+++ linux-6.12.30/fs/aufs/dentry.c 2026-06-20 18:11:10.321505257 +0300
@@ -0,0 +1,1178 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -8181,7 +8181,7 @@ diff -Naur null/fs/aufs/dentry.c linux-6.12.30/fs/aufs/dentry.c
+};
diff -Naur null/fs/aufs/dentry.h linux-6.12.30/fs/aufs/dentry.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/dentry.h 2026-03-25 14:52:47.435035737 +0300
+++ linux-6.12.30/fs/aufs/dentry.h 2026-06-20 18:11:10.321505257 +0300
@@ -0,0 +1,270 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -8455,7 +8455,7 @@ diff -Naur null/fs/aufs/dentry.h linux-6.12.30/fs/aufs/dentry.h
+#endif /* __AUFS_DENTRY_H__ */
diff -Naur null/fs/aufs/dinfo.c linux-6.12.30/fs/aufs/dinfo.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/dinfo.c 2026-03-25 14:52:47.435035737 +0300
+++ linux-6.12.30/fs/aufs/dinfo.c 2026-06-20 18:11:10.322505257 +0300
@@ -0,0 +1,555 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -9014,7 +9014,7 @@ diff -Naur null/fs/aufs/dinfo.c linux-6.12.30/fs/aufs/dinfo.c
+}
diff -Naur null/fs/aufs/dir.c linux-6.12.30/fs/aufs/dir.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/dir.c 2026-03-25 14:52:47.435035737 +0300
+++ linux-6.12.30/fs/aufs/dir.c 2026-06-20 18:11:10.322505257 +0300
@@ -0,0 +1,765 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -9783,7 +9783,7 @@ diff -Naur null/fs/aufs/dir.c linux-6.12.30/fs/aufs/dir.c
+};
diff -Naur null/fs/aufs/dir.h linux-6.12.30/fs/aufs/dir.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/dir.h 2026-03-25 14:52:47.436035724 +0300
+++ linux-6.12.30/fs/aufs/dir.h 2026-06-20 18:11:10.322505257 +0300
@@ -0,0 +1,134 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -9921,7 +9921,7 @@ diff -Naur null/fs/aufs/dir.h linux-6.12.30/fs/aufs/dir.h
+#endif /* __AUFS_DIR_H__ */
diff -Naur null/fs/aufs/dirren.c linux-6.12.30/fs/aufs/dirren.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/dirren.c 2026-03-25 14:52:47.436035724 +0300
+++ linux-6.12.30/fs/aufs/dirren.c 2026-06-20 18:11:10.322505257 +0300
@@ -0,0 +1,1308 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -11233,7 +11233,7 @@ diff -Naur null/fs/aufs/dirren.c linux-6.12.30/fs/aufs/dirren.c
+}
diff -Naur null/fs/aufs/dirren.h linux-6.12.30/fs/aufs/dirren.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/dirren.h 2026-03-25 14:52:47.436035724 +0300
+++ linux-6.12.30/fs/aufs/dirren.h 2026-06-20 18:11:10.322505257 +0300
@@ -0,0 +1,140 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -11377,7 +11377,7 @@ diff -Naur null/fs/aufs/dirren.h linux-6.12.30/fs/aufs/dirren.h
+#endif /* __AUFS_DIRREN_H__ */
diff -Naur null/fs/aufs/dynop.c linux-6.12.30/fs/aufs/dynop.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/dynop.c 2026-03-25 14:52:47.436035724 +0300
+++ linux-6.12.30/fs/aufs/dynop.c 2026-06-20 18:11:10.322505257 +0300
@@ -0,0 +1,365 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -11746,7 +11746,7 @@ diff -Naur null/fs/aufs/dynop.c linux-6.12.30/fs/aufs/dynop.c
+}
diff -Naur null/fs/aufs/dynop.h linux-6.12.30/fs/aufs/dynop.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/dynop.h 2026-03-25 14:52:47.436035724 +0300
+++ linux-6.12.30/fs/aufs/dynop.h 2026-06-20 18:11:10.322505257 +0300
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -11827,7 +11827,7 @@ diff -Naur null/fs/aufs/dynop.h linux-6.12.30/fs/aufs/dynop.h
+#endif /* __AUFS_DYNOP_H__ */
diff -Naur null/fs/aufs/export.c linux-6.12.30/fs/aufs/export.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/export.c 2026-03-25 14:52:47.436035724 +0300
+++ linux-6.12.30/fs/aufs/export.c 2026-06-20 18:11:10.323505257 +0300
@@ -0,0 +1,846 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -12677,7 +12677,7 @@ diff -Naur null/fs/aufs/export.c linux-6.12.30/fs/aufs/export.c
+}
diff -Naur null/fs/aufs/fhsm.c linux-6.12.30/fs/aufs/fhsm.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/fhsm.c 2026-03-25 14:52:47.437035712 +0300
+++ linux-6.12.30/fs/aufs/fhsm.c 2026-06-20 18:11:10.323505257 +0300
@@ -0,0 +1,426 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -13107,7 +13107,7 @@ diff -Naur null/fs/aufs/fhsm.c linux-6.12.30/fs/aufs/fhsm.c
+}
diff -Naur null/fs/aufs/file.c linux-6.12.30/fs/aufs/file.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/file.c 2026-03-25 14:52:47.437035712 +0300
+++ linux-6.12.30/fs/aufs/file.c 2026-06-20 18:11:10.323505257 +0300
@@ -0,0 +1,851 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -13962,7 +13962,7 @@ diff -Naur null/fs/aufs/file.c linux-6.12.30/fs/aufs/file.c
+};
diff -Naur null/fs/aufs/file.h linux-6.12.30/fs/aufs/file.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/file.h 2026-03-25 14:52:47.437035712 +0300
+++ linux-6.12.30/fs/aufs/file.h 2026-06-20 18:11:10.323505257 +0300
@@ -0,0 +1,327 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -14293,7 +14293,7 @@ diff -Naur null/fs/aufs/file.h linux-6.12.30/fs/aufs/file.h
+#endif /* __AUFS_FILE_H__ */
diff -Naur null/fs/aufs/finfo.c linux-6.12.30/fs/aufs/finfo.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/finfo.c 2026-03-25 14:52:47.437035712 +0300
+++ linux-6.12.30/fs/aufs/finfo.c 2026-06-20 18:11:10.323505257 +0300
@@ -0,0 +1,148 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -14445,7 +14445,7 @@ diff -Naur null/fs/aufs/finfo.c linux-6.12.30/fs/aufs/finfo.c
+}
diff -Naur null/fs/aufs/f_op.c linux-6.12.30/fs/aufs/f_op.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/f_op.c 2026-03-25 14:52:47.436035724 +0300
+++ linux-6.12.30/fs/aufs/f_op.c 2026-06-20 18:11:10.323505257 +0300
@@ -0,0 +1,791 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -15240,8 +15240,8 @@ diff -Naur null/fs/aufs/f_op.c linux-6.12.30/fs/aufs/f_op.c
+};
diff -Naur null/fs/aufs/fsctx.c linux-6.12.30/fs/aufs/fsctx.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/fsctx.c 2026-03-25 14:52:47.437035712 +0300
@@ -0,0 +1,1244 @@
+++ linux-6.12.30/fs/aufs/fsctx.c 2026-06-20 18:11:10.324505257 +0300
@@ -0,0 +1,1245 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2022-2025 Junjiro R. Okajima
@@ -16324,9 +16324,10 @@ diff -Naur null/fs/aufs/fsctx.c linux-6.12.30/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");
@@ -16488,7 +16489,7 @@ diff -Naur null/fs/aufs/fsctx.c linux-6.12.30/fs/aufs/fsctx.c
+}
diff -Naur null/fs/aufs/fstype.h linux-6.12.30/fs/aufs/fstype.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/fstype.h 2026-03-25 14:52:47.437035712 +0300
+++ linux-6.12.30/fs/aufs/fstype.h 2026-06-20 18:11:10.324505257 +0300
@@ -0,0 +1,419 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -16911,7 +16912,7 @@ diff -Naur null/fs/aufs/fstype.h linux-6.12.30/fs/aufs/fstype.h
+#endif /* __AUFS_FSTYPE_H__ */
diff -Naur null/fs/aufs/hbl.h linux-6.12.30/fs/aufs/hbl.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/hbl.h 2026-03-25 14:52:47.437035712 +0300
+++ linux-6.12.30/fs/aufs/hbl.h 2026-06-20 18:11:10.324505257 +0300
@@ -0,0 +1,65 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -16980,7 +16981,7 @@ diff -Naur null/fs/aufs/hbl.h linux-6.12.30/fs/aufs/hbl.h
+#endif /* __AUFS_HBL_H__ */
diff -Naur null/fs/aufs/hfsnotify.c linux-6.12.30/fs/aufs/hfsnotify.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/hfsnotify.c 2026-03-25 14:52:47.438035699 +0300
+++ linux-6.12.30/fs/aufs/hfsnotify.c 2026-06-20 18:11:10.324505257 +0300
@@ -0,0 +1,290 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -17274,7 +17275,7 @@ diff -Naur null/fs/aufs/hfsnotify.c linux-6.12.30/fs/aufs/hfsnotify.c
+};
diff -Naur null/fs/aufs/hfsplus.c linux-6.12.30/fs/aufs/hfsplus.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/hfsplus.c 2026-03-25 14:52:47.438035699 +0300
+++ linux-6.12.30/fs/aufs/hfsplus.c 2026-06-20 18:11:10.324505257 +0300
@@ -0,0 +1,60 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -17338,7 +17339,7 @@ diff -Naur null/fs/aufs/hfsplus.c linux-6.12.30/fs/aufs/hfsplus.c
+}
diff -Naur null/fs/aufs/hnotify.c linux-6.12.30/fs/aufs/hnotify.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/hnotify.c 2026-03-25 14:52:47.438035699 +0300
+++ linux-6.12.30/fs/aufs/hnotify.c 2026-06-20 18:11:10.324505257 +0300
@@ -0,0 +1,715 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -18057,7 +18058,7 @@ diff -Naur null/fs/aufs/hnotify.c linux-6.12.30/fs/aufs/hnotify.c
+}
diff -Naur null/fs/aufs/iinfo.c linux-6.12.30/fs/aufs/iinfo.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/iinfo.c 2026-03-25 14:52:47.439035687 +0300
+++ linux-6.12.30/fs/aufs/iinfo.c 2026-06-20 18:11:10.325505257 +0300
@@ -0,0 +1,288 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -18349,7 +18350,7 @@ diff -Naur null/fs/aufs/iinfo.c linux-6.12.30/fs/aufs/iinfo.c
+}
diff -Naur null/fs/aufs/inode.c linux-6.12.30/fs/aufs/inode.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/inode.c 2026-03-25 14:52:47.439035687 +0300
+++ linux-6.12.30/fs/aufs/inode.c 2026-06-20 18:11:10.325505257 +0300
@@ -0,0 +1,532 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -18885,7 +18886,7 @@ diff -Naur null/fs/aufs/inode.c linux-6.12.30/fs/aufs/inode.c
+}
diff -Naur null/fs/aufs/inode.h linux-6.12.30/fs/aufs/inode.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/inode.h 2026-03-25 14:52:47.439035687 +0300
+++ linux-6.12.30/fs/aufs/inode.h 2026-06-20 18:11:10.325505257 +0300
@@ -0,0 +1,728 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -19617,7 +19618,7 @@ diff -Naur null/fs/aufs/inode.h linux-6.12.30/fs/aufs/inode.h
+#endif /* __AUFS_INODE_H__ */
diff -Naur null/fs/aufs/ioctl.c linux-6.12.30/fs/aufs/ioctl.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/ioctl.c 2026-03-25 14:52:47.439035687 +0300
+++ linux-6.12.30/fs/aufs/ioctl.c 2026-06-20 18:11:10.326505257 +0300
@@ -0,0 +1,220 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -19841,7 +19842,7 @@ diff -Naur null/fs/aufs/ioctl.c linux-6.12.30/fs/aufs/ioctl.c
+#endif
diff -Naur null/fs/aufs/i_op_add.c linux-6.12.30/fs/aufs/i_op_add.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/i_op_add.c 2026-03-25 14:52:47.438035699 +0300
+++ linux-6.12.30/fs/aufs/i_op_add.c 2026-06-20 18:11:10.325505257 +0300
@@ -0,0 +1,947 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -20792,7 +20793,7 @@ diff -Naur null/fs/aufs/i_op_add.c linux-6.12.30/fs/aufs/i_op_add.c
+}
diff -Naur null/fs/aufs/i_op.c linux-6.12.30/fs/aufs/i_op.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/i_op.c 2026-03-25 14:52:47.438035699 +0300
+++ linux-6.12.30/fs/aufs/i_op.c 2026-06-20 18:11:10.324505257 +0300
@@ -0,0 +1,1522 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -22318,7 +22319,7 @@ diff -Naur null/fs/aufs/i_op.c linux-6.12.30/fs/aufs/i_op.c
+};
diff -Naur null/fs/aufs/i_op_del.c linux-6.12.30/fs/aufs/i_op_del.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/i_op_del.c 2026-03-25 14:52:47.438035699 +0300
+++ linux-6.12.30/fs/aufs/i_op_del.c 2026-06-20 18:11:10.325505257 +0300
@@ -0,0 +1,517 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -22839,7 +22840,7 @@ diff -Naur null/fs/aufs/i_op_del.c linux-6.12.30/fs/aufs/i_op_del.c
+}
diff -Naur null/fs/aufs/i_op_ren.c linux-6.12.30/fs/aufs/i_op_ren.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/i_op_ren.c 2026-03-25 14:52:47.439035687 +0300
+++ linux-6.12.30/fs/aufs/i_op_ren.c 2026-06-20 18:11:10.325505257 +0300
@@ -0,0 +1,1242 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -24085,7 +24086,7 @@ diff -Naur null/fs/aufs/i_op_ren.c linux-6.12.30/fs/aufs/i_op_ren.c
+}
diff -Naur null/fs/aufs/Kconfig linux-6.12.30/fs/aufs/Kconfig
--- /dev/null
+++ linux-6.12.30/fs/aufs/Kconfig 2026-03-25 14:52:47.434465972 +0300
+++ linux-6.12.30/fs/aufs/Kconfig 2026-06-20 18:11:10.319505256 +0300
@@ -0,0 +1,201 @@
+# SPDX-License-Identifier: GPL-2.0
+config AUFS_FS
@@ -24290,7 +24291,7 @@ diff -Naur null/fs/aufs/Kconfig linux-6.12.30/fs/aufs/Kconfig
+endif
diff -Naur null/fs/aufs/lcnt.h linux-6.12.30/fs/aufs/lcnt.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/lcnt.h 2026-03-25 14:52:47.439035687 +0300
+++ linux-6.12.30/fs/aufs/lcnt.h 2026-06-20 18:11:10.326505257 +0300
@@ -0,0 +1,186 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -24480,8 +24481,8 @@ diff -Naur null/fs/aufs/lcnt.h linux-6.12.30/fs/aufs/lcnt.h
+#endif /* __AUFS_LCNT_H__ */
diff -Naur null/fs/aufs/loop.c linux-6.12.30/fs/aufs/loop.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/loop.c 2026-03-25 14:52:47.439035687 +0300
@@ -0,0 +1,148 @@
+++ linux-6.12.30/fs/aufs/loop.c 2026-06-20 18:11:10.326505257 +0300
@@ -0,0 +1,157 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005-2025 Junjiro R. Okajima
@@ -24514,21 +24515,23 @@ diff -Naur null/fs/aufs/loop.c linux-6.12.30/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;
+ /*
@@ -24536,8 +24539,15 @@ diff -Naur null/fs/aufs/loop.c linux-6.12.30/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 */
@@ -24632,7 +24642,7 @@ diff -Naur null/fs/aufs/loop.c linux-6.12.30/fs/aufs/loop.c
+}
diff -Naur null/fs/aufs/loop.h linux-6.12.30/fs/aufs/loop.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/loop.h 2026-03-25 14:52:47.439035687 +0300
+++ linux-6.12.30/fs/aufs/loop.h 2026-06-20 18:11:10.326505257 +0300
@@ -0,0 +1,55 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -24691,7 +24701,7 @@ diff -Naur null/fs/aufs/loop.h linux-6.12.30/fs/aufs/loop.h
+#endif /* __AUFS_LOOP_H__ */
diff -Naur null/fs/aufs/magic.mk linux-6.12.30/fs/aufs/magic.mk
--- /dev/null
+++ linux-6.12.30/fs/aufs/magic.mk 2026-03-25 14:52:47.439035687 +0300
+++ linux-6.12.30/fs/aufs/magic.mk 2026-06-20 18:11:10.326505257 +0300
@@ -0,0 +1,31 @@
+# SPDX-License-Identifier: GPL-2.0
+
@@ -24726,7 +24736,7 @@ diff -Naur null/fs/aufs/magic.mk linux-6.12.30/fs/aufs/magic.mk
+endif
diff -Naur null/fs/aufs/Makefile linux-6.12.30/fs/aufs/Makefile
--- /dev/null
+++ linux-6.12.30/fs/aufs/Makefile 2026-03-25 14:52:47.434610124 +0300
+++ linux-6.12.30/fs/aufs/Makefile 2026-06-20 18:11:10.319505256 +0300
@@ -0,0 +1,46 @@
+# SPDX-License-Identifier: GPL-2.0
+
@@ -24776,7 +24786,7 @@ diff -Naur null/fs/aufs/Makefile linux-6.12.30/fs/aufs/Makefile
+aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o
diff -Naur null/fs/aufs/mf.c linux-6.12.30/fs/aufs/mf.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/mf.c 2026-03-25 14:52:47.439035687 +0300
+++ linux-6.12.30/fs/aufs/mf.c 2026-06-20 18:11:10.326505257 +0300
@@ -0,0 +1,119 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -24899,7 +24909,7 @@ diff -Naur null/fs/aufs/mf.c linux-6.12.30/fs/aufs/mf.c
+EXPORT_SYMBOL_GPL(au_do_file_user_inode);
diff -Naur null/fs/aufs/module.c linux-6.12.30/fs/aufs/module.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/module.c 2026-03-25 14:52:47.440035674 +0300
+++ linux-6.12.30/fs/aufs/module.c 2026-06-20 18:11:10.326505257 +0300
@@ -0,0 +1,275 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -25178,7 +25188,7 @@ diff -Naur null/fs/aufs/module.c linux-6.12.30/fs/aufs/module.c
+module_exit(aufs_exit);
diff -Naur null/fs/aufs/module.h linux-6.12.30/fs/aufs/module.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/module.h 2026-03-25 14:52:47.440035674 +0300
+++ linux-6.12.30/fs/aufs/module.h 2026-06-20 18:11:10.326505257 +0300
@@ -0,0 +1,180 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -25362,7 +25372,7 @@ diff -Naur null/fs/aufs/module.h linux-6.12.30/fs/aufs/module.h
+#endif /* __AUFS_MODULE_H__ */
diff -Naur null/fs/aufs/mvdown.c linux-6.12.30/fs/aufs/mvdown.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/mvdown.c 2026-03-25 14:52:47.440035674 +0300
+++ linux-6.12.30/fs/aufs/mvdown.c 2026-06-20 18:11:10.326505257 +0300
@@ -0,0 +1,700 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -26066,7 +26076,7 @@ diff -Naur null/fs/aufs/mvdown.c linux-6.12.30/fs/aufs/mvdown.c
+}
diff -Naur null/fs/aufs/opts.c linux-6.12.30/fs/aufs/opts.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/opts.c 2026-03-25 14:52:47.440035674 +0300
+++ linux-6.12.30/fs/aufs/opts.c 2026-06-20 18:11:10.327505257 +0300
@@ -0,0 +1,1030 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -27100,7 +27110,7 @@ diff -Naur null/fs/aufs/opts.c linux-6.12.30/fs/aufs/opts.c
+}
diff -Naur null/fs/aufs/opts.h linux-6.12.30/fs/aufs/opts.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/opts.h 2026-03-25 14:52:47.440035674 +0300
+++ linux-6.12.30/fs/aufs/opts.h 2026-06-20 18:11:10.327505257 +0300
@@ -0,0 +1,264 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -27368,7 +27378,7 @@ diff -Naur null/fs/aufs/opts.h linux-6.12.30/fs/aufs/opts.h
+#endif /* __AUFS_OPTS_H__ */
diff -Naur null/fs/aufs/plink.c linux-6.12.30/fs/aufs/plink.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/plink.c 2026-03-25 14:52:47.440035674 +0300
+++ linux-6.12.30/fs/aufs/plink.c 2026-06-20 18:11:10.327505257 +0300
@@ -0,0 +1,508 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -27880,7 +27890,7 @@ diff -Naur null/fs/aufs/plink.c linux-6.12.30/fs/aufs/plink.c
+}
diff -Naur null/fs/aufs/poll.c linux-6.12.30/fs/aufs/poll.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/poll.c 2026-03-25 14:52:47.440035674 +0300
+++ linux-6.12.30/fs/aufs/poll.c 2026-06-20 18:11:10.327505257 +0300
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -27935,7 +27945,7 @@ diff -Naur null/fs/aufs/poll.c linux-6.12.30/fs/aufs/poll.c
+}
diff -Naur null/fs/aufs/posix_acl.c linux-6.12.30/fs/aufs/posix_acl.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/posix_acl.c 2026-03-25 14:52:47.441035662 +0300
+++ linux-6.12.30/fs/aufs/posix_acl.c 2026-06-20 18:11:10.327505257 +0300
@@ -0,0 +1,108 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -28047,7 +28057,7 @@ diff -Naur null/fs/aufs/posix_acl.c linux-6.12.30/fs/aufs/posix_acl.c
+}
diff -Naur null/fs/aufs/procfs.c linux-6.12.30/fs/aufs/procfs.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/procfs.c 2026-03-25 14:52:47.441035662 +0300
+++ linux-6.12.30/fs/aufs/procfs.c 2026-06-20 18:11:10.327505257 +0300
@@ -0,0 +1,168 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -28219,7 +28229,7 @@ diff -Naur null/fs/aufs/procfs.c linux-6.12.30/fs/aufs/procfs.c
+}
diff -Naur null/fs/aufs/rdu.c linux-6.12.30/fs/aufs/rdu.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/rdu.c 2026-03-25 14:52:47.441035662 +0300
+++ linux-6.12.30/fs/aufs/rdu.c 2026-06-20 18:11:10.327505257 +0300
@@ -0,0 +1,384 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -28607,7 +28617,7 @@ diff -Naur null/fs/aufs/rdu.c linux-6.12.30/fs/aufs/rdu.c
+#endif
diff -Naur null/fs/aufs/rwsem.h linux-6.12.30/fs/aufs/rwsem.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/rwsem.h 2026-03-25 14:52:47.441035662 +0300
+++ linux-6.12.30/fs/aufs/rwsem.h 2026-06-20 18:11:10.327505257 +0300
@@ -0,0 +1,89 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -28700,7 +28710,7 @@ diff -Naur null/fs/aufs/rwsem.h linux-6.12.30/fs/aufs/rwsem.h
+#endif /* __AUFS_RWSEM_H__ */
diff -Naur null/fs/aufs/sbinfo.c linux-6.12.30/fs/aufs/sbinfo.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/sbinfo.c 2026-03-25 14:52:47.441035662 +0300
+++ linux-6.12.30/fs/aufs/sbinfo.c 2026-06-20 18:11:10.327505257 +0300
@@ -0,0 +1,316 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -29020,7 +29030,7 @@ diff -Naur null/fs/aufs/sbinfo.c linux-6.12.30/fs/aufs/sbinfo.c
+}
diff -Naur null/fs/aufs/super.c linux-6.12.30/fs/aufs/super.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/super.c 2026-03-25 14:52:47.441035662 +0300
+++ linux-6.12.30/fs/aufs/super.c 2026-06-20 18:11:10.328505257 +0300
@@ -0,0 +1,871 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -29895,7 +29905,7 @@ diff -Naur null/fs/aufs/super.c linux-6.12.30/fs/aufs/super.c
+};
diff -Naur null/fs/aufs/super.h linux-6.12.30/fs/aufs/super.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/super.h 2026-03-25 14:52:47.441035662 +0300
+++ linux-6.12.30/fs/aufs/super.h 2026-06-20 18:11:10.328505257 +0300
@@ -0,0 +1,618 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -30517,7 +30527,7 @@ diff -Naur null/fs/aufs/super.h linux-6.12.30/fs/aufs/super.h
+#endif /* __AUFS_SUPER_H__ */
diff -Naur null/fs/aufs/sysaufs.c linux-6.12.30/fs/aufs/sysaufs.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/sysaufs.c 2026-03-25 14:52:47.441035662 +0300
+++ linux-6.12.30/fs/aufs/sysaufs.c 2026-06-20 18:11:10.328505257 +0300
@@ -0,0 +1,94 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -30615,7 +30625,7 @@ diff -Naur null/fs/aufs/sysaufs.c linux-6.12.30/fs/aufs/sysaufs.c
+}
diff -Naur null/fs/aufs/sysaufs.h linux-6.12.30/fs/aufs/sysaufs.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/sysaufs.h 2026-03-25 14:52:47.442035649 +0300
+++ linux-6.12.30/fs/aufs/sysaufs.h 2026-06-20 18:11:10.328505257 +0300
@@ -0,0 +1,102 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -30721,7 +30731,7 @@ diff -Naur null/fs/aufs/sysaufs.h linux-6.12.30/fs/aufs/sysaufs.h
+#endif /* __SYSAUFS_H__ */
diff -Naur null/fs/aufs/sysfs.c linux-6.12.30/fs/aufs/sysfs.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/sysfs.c 2026-03-25 14:52:47.442035649 +0300
+++ linux-6.12.30/fs/aufs/sysfs.c 2026-06-20 18:11:10.328505257 +0300
@@ -0,0 +1,374 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -31099,7 +31109,7 @@ diff -Naur null/fs/aufs/sysfs.c linux-6.12.30/fs/aufs/sysfs.c
+}
diff -Naur null/fs/aufs/sysrq.c linux-6.12.30/fs/aufs/sysrq.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/sysrq.c 2026-03-25 14:52:47.442035649 +0300
+++ linux-6.12.30/fs/aufs/sysrq.c 2026-06-20 18:11:10.328505257 +0300
@@ -0,0 +1,157 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -31260,7 +31270,7 @@ diff -Naur null/fs/aufs/sysrq.c linux-6.12.30/fs/aufs/sysrq.c
+}
diff -Naur null/fs/aufs/vdir.c linux-6.12.30/fs/aufs/vdir.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/vdir.c 2026-03-25 14:52:47.442035649 +0300
+++ linux-6.12.30/fs/aufs/vdir.c 2026-06-20 18:11:10.328505257 +0300
@@ -0,0 +1,896 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -32160,7 +32170,7 @@ diff -Naur null/fs/aufs/vdir.c linux-6.12.30/fs/aufs/vdir.c
+}
diff -Naur null/fs/aufs/vfsub.c linux-6.12.30/fs/aufs/vfsub.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/vfsub.c 2026-03-25 14:52:47.442035649 +0300
+++ linux-6.12.30/fs/aufs/vfsub.c 2026-06-20 18:11:10.329505257 +0300
@@ -0,0 +1,1005 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -33169,7 +33179,7 @@ diff -Naur null/fs/aufs/vfsub.c linux-6.12.30/fs/aufs/vfsub.c
+}
diff -Naur null/fs/aufs/vfsub.h linux-6.12.30/fs/aufs/vfsub.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/vfsub.h 2026-03-25 14:52:47.443035637 +0300
+++ linux-6.12.30/fs/aufs/vfsub.h 2026-06-20 18:11:10.329505257 +0300
@@ -0,0 +1,436 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -33609,7 +33619,7 @@ diff -Naur null/fs/aufs/vfsub.h linux-6.12.30/fs/aufs/vfsub.h
+#endif /* __AUFS_VFSUB_H__ */
diff -Naur null/fs/aufs/wbr_policy.c linux-6.12.30/fs/aufs/wbr_policy.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/wbr_policy.c 2026-03-25 14:52:47.443035637 +0300
+++ linux-6.12.30/fs/aufs/wbr_policy.c 2026-06-20 18:11:10.329505257 +0300
@@ -0,0 +1,836 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -34449,7 +34459,7 @@ diff -Naur null/fs/aufs/wbr_policy.c linux-6.12.30/fs/aufs/wbr_policy.c
+};
diff -Naur null/fs/aufs/whout.c linux-6.12.30/fs/aufs/whout.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/whout.c 2026-03-25 14:52:47.443035637 +0300
+++ linux-6.12.30/fs/aufs/whout.c 2026-06-20 18:11:10.329505257 +0300
@@ -0,0 +1,1049 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -35502,7 +35512,7 @@ diff -Naur null/fs/aufs/whout.c linux-6.12.30/fs/aufs/whout.c
+}
diff -Naur null/fs/aufs/whout.h linux-6.12.30/fs/aufs/whout.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/whout.h 2026-03-25 14:52:47.443035637 +0300
+++ linux-6.12.30/fs/aufs/whout.h 2026-06-20 18:11:10.329505257 +0300
@@ -0,0 +1,87 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -35593,7 +35603,7 @@ diff -Naur null/fs/aufs/whout.h linux-6.12.30/fs/aufs/whout.h
+#endif /* __AUFS_WHOUT_H__ */
diff -Naur null/fs/aufs/wkq.c linux-6.12.30/fs/aufs/wkq.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/wkq.c 2026-03-25 14:52:47.443035637 +0300
+++ linux-6.12.30/fs/aufs/wkq.c 2026-06-20 18:11:10.330505257 +0300
@@ -0,0 +1,370 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -35967,7 +35977,7 @@ diff -Naur null/fs/aufs/wkq.c linux-6.12.30/fs/aufs/wkq.c
+}
diff -Naur null/fs/aufs/wkq.h linux-6.12.30/fs/aufs/wkq.h
--- /dev/null
+++ linux-6.12.30/fs/aufs/wkq.h 2026-03-25 14:52:47.443035637 +0300
+++ linux-6.12.30/fs/aufs/wkq.h 2026-06-20 18:11:10.330505257 +0300
@@ -0,0 +1,89 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
@@ -36060,7 +36070,7 @@ diff -Naur null/fs/aufs/wkq.h linux-6.12.30/fs/aufs/wkq.h
+#endif /* __AUFS_WKQ_H__ */
diff -Naur null/fs/aufs/xattr.c linux-6.12.30/fs/aufs/xattr.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/xattr.c 2026-03-25 14:52:47.444035624 +0300
+++ linux-6.12.30/fs/aufs/xattr.c 2026-06-20 18:11:10.330505257 +0300
@@ -0,0 +1,360 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -36424,7 +36434,7 @@ diff -Naur null/fs/aufs/xattr.c linux-6.12.30/fs/aufs/xattr.c
+}
diff -Naur null/fs/aufs/xino.c linux-6.12.30/fs/aufs/xino.c
--- /dev/null
+++ linux-6.12.30/fs/aufs/xino.c 2026-03-25 14:52:47.444035624 +0300
+++ linux-6.12.30/fs/aufs/xino.c 2026-06-20 18:11:10.330505257 +0300
@@ -0,0 +1,1927 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
@@ -38355,7 +38365,7 @@ diff -Naur null/fs/aufs/xino.c linux-6.12.30/fs/aufs/xino.c
+}
diff -Naur null/include/uapi/linux/aufs_type.h linux-6.12.30/include/uapi/linux/aufs_type.h
--- /dev/null
+++ linux-6.12.30/include/uapi/linux/aufs_type.h 2026-03-25 14:52:47.445565498 +0300
+++ linux-6.12.30/include/uapi/linux/aufs_type.h 2026-06-20 18:11:10.330505257 +0300
@@ -0,0 +1,452 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
@@ -38399,7 +38409,7 @@ diff -Naur null/include/uapi/linux/aufs_type.h linux-6.12.30/include/uapi/linux/
+#include <limits.h>
+#endif /* __KERNEL__ */
+
+#define AUFS_VERSION "6.12-20260223"
+#define AUFS_VERSION "6.12-20260525"
+
+/* todo? move this to linux-2.6.19/include/magic.h */
+#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
+17 -107
View File
@@ -1,10 +1,10 @@
SPDX-License-Identifier: GPL-2.0
diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h
index 515a9a6a3c6f..9de809dac3be 100644
index 515a9a6a3c6f..b23b4b5a61dd 100644
--- a/include/linux/shmem_fs.h
+++ b/include/linux/shmem_fs.h
@@ -55,10 +55,13 @@ struct shmem_quota_limits {
@@ -55,8 +55,12 @@ struct shmem_quota_limits {
};
struct shmem_sb_info {
@@ -13,32 +13,16 @@ index 515a9a6a3c6f..9de809dac3be 100644
+ struct idr idr; /* manages inode-number */
unsigned long max_blocks; /* How many blocks are allowed */
struct percpu_counter used_blocks; /* How many are allocated */
- unsigned long max_inodes; /* How many inodes are allowed */
- unsigned long free_ispace; /* How much ispace left for allocation */
+ int max_inodes; /* How many inodes are allowed */
+ unsigned long free_ispace; /* How many are left for allocation */
+ /* keep the type unchanged to reduce the size of tmpfs_idr.patch. */
unsigned long max_inodes; /* How many inodes are allowed */
unsigned long free_ispace; /* How much ispace left for allocation */
raw_spinlock_t stat_lock; /* Serialize shmem_sb_info changes */
umode_t mode; /* Mount mode for root directory */
unsigned char huge; /* Whether to try for hugepages */
diff --git a/mm/shmem.c b/mm/shmem.c
index 568bb290bdce..f8869230f782 100644
index 568bb290bdce..ea14faf65e87 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -112,7 +112,7 @@ struct shmem_falloc {
struct shmem_options {
unsigned long long blocks;
- unsigned long long inodes;
+ int inodes;
struct mempolicy *mpol;
kuid_t uid;
kgid_t gid;
@@ -144,12 +144,14 @@ static unsigned long shmem_default_max_blocks(void)
return totalram_pages() / 2;
}
-static unsigned long shmem_default_max_inodes(void)
+static int shmem_default_max_inodes(void)
@@ -147,9 +147,11 @@ static unsigned long shmem_default_max_blocks(void)
static unsigned long shmem_default_max_inodes(void)
{
unsigned long nr_pages = totalram_pages();
+ unsigned long ul;
@@ -63,7 +47,7 @@ index 568bb290bdce..f8869230f782 100644
shmem_free_inode(inode->i_sb, freed);
WARN_ON(inode->i_blocks);
clear_inode(inode);
@@ -2854,6 +2861,25 @@ static struct inode *__shmem_get_inode(struct mnt_idmap *idmap,
@@ -2854,6 +2861,26 @@ static struct inode *__shmem_get_inode(struct mnt_idmap *idmap,
break;
}
@@ -75,7 +59,8 @@ index 568bb290bdce..f8869230f782 100644
+ if (ino > 0) {
+ inode->i_ino = ino;
+ mutex_unlock(&sbinfo->idr_lock);
+ __insert_inode_hash(inode, inode->i_ino);
+ /* postpone it as the original does */
+ /* __insert_inode_hash(inode, inode->i_ino); */
+ } else {
+ inode->i_ino = 0;
+ mutex_unlock(&sbinfo->idr_lock);
@@ -89,69 +74,7 @@ index 568bb290bdce..f8869230f782 100644
lockdep_annotate_inode_mutex_key(inode);
return inode;
}
@@ -4098,8 +4124,7 @@ static struct dentry *shmem_get_parent(struct dentry *child)
static int shmem_match(struct inode *ino, void *vfh)
{
__u32 *fh = vfh;
- __u64 inum = fh[2];
- inum = (inum << 32) | fh[1];
+ __u64 inum = fh[1];
return ino->i_ino == inum && fh[0] == ino->i_generation;
}
@@ -4118,14 +4143,11 @@ static struct dentry *shmem_fh_to_dentry(struct super_block *sb,
struct dentry *dentry = NULL;
u64 inum;
- if (fh_len < 3)
+ if (fh_len < 2)
return NULL;
- inum = fid->raw[2];
- inum = (inum << 32) | fid->raw[1];
-
- inode = ilookup5(sb, (unsigned long)(inum + fid->raw[0]),
- shmem_match, fid->raw);
+ inum = fid->raw[1];
+ inode = ilookup5(sb, inum, shmem_match, fid->raw);
if (inode) {
dentry = shmem_find_alias(inode);
iput(inode);
@@ -4137,30 +4159,15 @@ static struct dentry *shmem_fh_to_dentry(struct super_block *sb,
static int shmem_encode_fh(struct inode *inode, __u32 *fh, int *len,
struct inode *parent)
{
- if (*len < 3) {
- *len = 3;
+ if (*len < 2) {
+ *len = 2;
return FILEID_INVALID;
}
- if (inode_unhashed(inode)) {
- /* Unfortunately insert_inode_hash is not idempotent,
- * so as we hash inodes here rather than at creation
- * time, we need a lock to ensure we only try
- * to do it once
- */
- static DEFINE_SPINLOCK(lock);
- spin_lock(&lock);
- if (inode_unhashed(inode))
- __insert_inode_hash(inode,
- inode->i_ino + inode->i_generation);
- spin_unlock(&lock);
- }
-
fh[0] = inode->i_generation;
fh[1] = inode->i_ino;
- fh[2] = ((__u64)inode->i_ino) >> 32;
- *len = 3;
+ *len = 2;
return 1;
}
@@ -4259,7 +4266,7 @@ static int shmem_parse_one(struct fs_context *fc, struct fs_parameter *param)
@@ -4259,7 +4286,7 @@ static int shmem_parse_one(struct fs_context *fc, struct fs_parameter *param)
break;
case Opt_nr_inodes:
ctx->inodes = memparse(param->string, &rest);
@@ -160,16 +83,7 @@ index 568bb290bdce..f8869230f782 100644
goto bad_value;
ctx->seen |= SHMEM_SEEN_INODES;
break;
@@ -4541,7 +4548,7 @@ static int shmem_show_options(struct seq_file *seq, struct dentry *root)
if (sbinfo->max_blocks != shmem_default_max_blocks())
seq_printf(seq, ",size=%luk", K(sbinfo->max_blocks));
if (sbinfo->max_inodes != shmem_default_max_inodes())
- seq_printf(seq, ",nr_inodes=%lu", sbinfo->max_inodes);
+ seq_printf(seq, ",nr_inodes=%d", sbinfo->max_inodes);
if (sbinfo->mode != (0777 | S_ISVTX))
seq_printf(seq, ",mode=%03ho", sbinfo->mode);
if (!uid_eq(sbinfo->uid, GLOBAL_ROOT_UID))
@@ -4613,6 +4620,8 @@ static void shmem_put_super(struct super_block *sb)
@@ -4613,6 +4640,8 @@ static void shmem_put_super(struct super_block *sb)
#ifdef CONFIG_TMPFS_QUOTA
shmem_disable_quotas(sb);
#endif
@@ -178,7 +92,7 @@ index 568bb290bdce..f8869230f782 100644
free_percpu(sbinfo->ino_batch);
percpu_counter_destroy(&sbinfo->used_blocks);
mpol_put(sbinfo->mpol);
@@ -4657,9 +4666,11 @@ static int shmem_fill_super(struct super_block *sb, struct fs_context *fc)
@@ -4657,6 +4686,8 @@ static int shmem_fill_super(struct super_block *sb, struct fs_context *fc)
#else
sb->s_flags |= SB_NOUSER;
#endif
@@ -186,12 +100,8 @@ index 568bb290bdce..f8869230f782 100644
+ idr_init(&sbinfo->idr);
sbinfo->max_blocks = ctx->blocks;
sbinfo->max_inodes = ctx->inodes;
- sbinfo->free_ispace = sbinfo->max_inodes * BOGO_INODE_SIZE;
+ sbinfo->free_ispace = (unsigned long)sbinfo->max_inodes * BOGO_INODE_SIZE;
if (sb->s_flags & SB_KERNMOUNT) {
sbinfo->ino_batch = alloc_percpu(ino_t);
if (!sbinfo->ino_batch)
@@ -4804,6 +4815,15 @@ static int shmem_error_remove_folio(struct address_space *mapping,
sbinfo->free_ispace = sbinfo->max_inodes * BOGO_INODE_SIZE;
@@ -4804,6 +4835,15 @@ static int shmem_error_remove_folio(struct address_space *mapping,
return 0;
}
@@ -207,7 +117,7 @@ index 568bb290bdce..f8869230f782 100644
static const struct address_space_operations shmem_aops = {
.writepage = shmem_writepage,
.dirty_folio = noop_dirty_folio,
@@ -4968,6 +4988,7 @@ void __init shmem_init(void)
@@ -4968,6 +5008,7 @@ void __init shmem_init(void)
pr_err("Could not kern_mount tmpfs\n");
goto out1;
}
Binary file not shown.
+13 -2
View File
@@ -33,10 +33,10 @@
</BuildDependencies>
<Patches>
<!-- Linux patches -->
<Patch level="1" compressionType="xz">patches/linux/patch-6.12.89.xz</Patch>
<Patch level="1" compressionType="xz">patches/linux/patch-6.12.94.xz</Patch>
<!-- aufs6 patchec -->
<Patch level="1">patches/aufs6/aufs6.12-20260223.patch</Patch>
<Patch level="1">patches/aufs6/aufs6.12-20260525.patch</Patch>
<Patch level="1">patches/aufs6/aufs6-base.patch</Patch>
<Patch level="1">patches/aufs6/aufs6-kbuild.patch</Patch>
<!-- <Patch level="1">patches/aufs6/aufs6-loopback.patch</Patch> -->
@@ -145,6 +145,17 @@
</Package>
<History>
<Update release="121">
<Date>2026-06-20</Date>
<Version>6.12.94</Version>
<Comment>Version bump</Comment>
<Type package="kernel">security</Type>
<Requires>
<Action package="kernel">systemRestart</Action>
</Requires>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="120">
<Date>2026-05-16</Date>
<Version>6.12.89</Version>