[packages/kernel/LINUX_6_12] - updated aufs from upstream and pepper it with const

baggins baggins at pld-linux.org
Wed Jul 8 01:31:07 CEST 2026


commit 5967703d89c3e8491a6048fa459c1c38ec50cc4d
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Wed Jul 8 01:30:38 2026 +0200

    - updated aufs from upstream and pepper it with const

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

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/5967703d89c3e8491a6048fa459c1c38ec50cc4d



More information about the pld-cvs-commit mailing list