[packages/kernel/LINUX_6_12] Up to 6.12.40

arekm arekm at pld-linux.org
Thu Jul 24 20:24:13 CEST 2025


commit 1e2ded8a16ce9ce842c025f2e1f8eec5b6d902cc
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Thu Jul 24 20:23:29 2025 +0200

    Up to 6.12.40

 kernel-aufs.patch | 208 +++++++++++++++++++++++++++---------------------------
 kernel-x86.config |   1 +
 kernel.spec       |   4 +-
 update-source.sh  |   2 +-
 4 files changed, 109 insertions(+), 106 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index d9b5d648..622066d4 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -53,7 +53,7 @@
 
 %define		rel		1
 %define		basever		6.12
-%define		postver		.36
+%define		postver		.40
 
 # define this to '-%{basever}' for longterm branch
 %define		versuffix	-%{basever}
@@ -107,7 +107,7 @@ Source0:	https://www.kernel.org/pub/linux/kernel/v6.x/linux-%{basever}.tar.xz
 # Source0-md5:	844fae6a58c7f43af44d8cea8484b4a1
 %if "%{postver}" != ".0"
 Patch0:		https://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz
-# Patch0-md5:	8c3f3d1807b9e2dca24f9bdf8bd4decc
+# Patch0-md5:	9276782814e83a4ba32cef2147b4e10a
 %endif
 Source1:	kernel.sysconfig
 
diff --git a/kernel-aufs.patch b/kernel-aufs.patch
index 51ff0d96..49185605 100644
--- a/kernel-aufs.patch
+++ b/kernel-aufs.patch
@@ -1,8 +1,8 @@
 SPDX-License-Identifier: GPL-2.0
-aufs6.12 kbuild patch
+aufs6.12.29 kbuild patch
 
 diff --git a/fs/Kconfig b/fs/Kconfig
-index aae170fc27952..d5bb584649f50 100644
+index 3117304676331..a5e93a2ef3c16 100644
 --- a/fs/Kconfig
 +++ b/fs/Kconfig
 @@ -341,6 +341,7 @@ source "fs/sysv/Kconfig"
@@ -23,10 +23,10 @@ index 61679fd587b7e..b2539712b80d0 100644
  obj-$(CONFIG_BPF_LSM)		+= bpf_fs_kfuncs.o
 +obj-$(CONFIG_AUFS_FS)           += aufs/
 SPDX-License-Identifier: GPL-2.0
-aufs6.12 base patch
+aufs6.12.29 base patch
 
 diff --git a/MAINTAINERS b/MAINTAINERS
-index b878ddc99f94e..8489754030b99 100644
+index de04c7ba8571b..a8d7e5e0915a9 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
 @@ -3666,6 +3666,19 @@ F:	kernel/audit*
@@ -50,10 +50,10 @@ index b878ddc99f94e..8489754030b99 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 78a7bb28defe4..479480f25a6c0 100644
+index 6bd44ec2c9b1a..c8eba5ada9950 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,
+@@ -605,6 +605,26 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	goto done;
  }
  
@@ -104,7 +104,7 @@ index 0f6b16ba30d08..1ab11cad60e8c 100644
  {
  	struct dentry *this_parent, *dentry;
 diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 22dd9dcce7ecc..460791727fd9c 100644
+index 3d89de31066ae..ca24c8fe2aa23 100644
 --- a/fs/fcntl.c
 +++ b/fs/fcntl.c
 @@ -37,7 +37,7 @@
@@ -126,10 +126,10 @@ index 22dd9dcce7ecc..460791727fd9c 100644
  		return error;
  
 diff --git a/fs/namespace.c b/fs/namespace.c
-index d26f5e6d2ca35..85739e2d64c00 100644
+index c3c1e8c644f2e..3a8f55b2225d4 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
-@@ -966,6 +966,12 @@ static inline int check_mnt(struct mount *mnt)
+@@ -967,6 +967,12 @@ static inline int check_mnt(struct mount *mnt)
  	return mnt->mnt_ns == current->nsproxy->mnt_ns;
  }
  
@@ -143,7 +143,7 @@ index d26f5e6d2ca35..85739e2d64c00 100644
   * vfsmount lock must be held for write
   */
 diff --git a/fs/splice.c b/fs/splice.c
-index 06232d7e505f6..b15fd6073b6d3 100644
+index 38f8c94267315..82432ce08d484 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
 @@ -933,7 +933,7 @@ static int warn_unsupported(struct file *file, const char *op)
@@ -156,7 +156,7 @@ index 06232d7e505f6..b15fd6073b6d3 100644
  {
  	if (unlikely(!out->f_op->splice_write))
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 3559446279c15..51b64b2ad82c4 100644
+index b98f128c9afa7..cb9f98b540e31 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
 @@ -1160,6 +1160,7 @@ extern void fasync_free(struct fasync_struct *);
@@ -176,7 +176,7 @@ index 3559446279c15..51b64b2ad82c4 100644
  	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
  	ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
 diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
-index 217f7abf2cbfa..0e17b8c23f105 100644
+index 67964dc4db952..517ef3ea8c85f 100644
 --- a/include/linux/lockdep.h
 +++ b/include/linux/lockdep.h
 @@ -210,6 +210,8 @@ static inline int lockdep_match_key(struct lockdep_map *lock,
@@ -222,7 +222,7 @@ index 9dec4861d09f6..14583d8468640 100644
 +			      loff_t *ppos, size_t len, unsigned int flags);
  #endif
 diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index 536bd471557f5..34b378cf7a95f 100644
+index 53c76dc71f3f5..35e5be967209e 100644
 --- a/kernel/locking/lockdep.c
 +++ b/kernel/locking/lockdep.c
 @@ -218,7 +218,7 @@ unsigned long max_lock_class_idx;
@@ -243,10 +243,10 @@ index 536bd471557f5..34b378cf7a95f 100644
  #ifdef CONFIG_LOCK_STAT
  static DEFINE_PER_CPU(struct lock_class_stats[MAX_LOCKDEP_KEYS], cpu_lock_stats);
 SPDX-License-Identifier: GPL-2.0
-aufs6.12 mmap patch
+aufs6.12.29 mmap patch
 
 diff --git a/fs/proc/base.c b/fs/proc/base.c
-index b31283d81c52e..644bd3d84cf76 100644
+index a2541f5204af0..51ccdf1869a9a 100644
 --- a/fs/proc/base.c
 +++ b/fs/proc/base.c
 @@ -2270,7 +2270,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path)
@@ -275,7 +275,7 @@ index c6e7ebc637562..d7ccfd9097646 100644
  		ino = inode->i_ino;
  	}
 diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index 7eb010de39fe2..0c576103f7f15 100644
+index 536b7dc453818..9827adb224d75 100644
 --- a/fs/proc/task_mmu.c
 +++ b/fs/proc/task_mmu.c
 @@ -264,7 +264,8 @@ static void get_vma_name(struct vm_area_struct *vma,
@@ -324,7 +324,7 @@ index bce6745330003..b12b5a75c799c 100644
  		ino = inode->i_ino;
  		pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
 diff --git a/include/linux/mm.h b/include/linux/mm.h
-index 61fff5d34ed53..94b66987b4bb0 100644
+index 8617adc6becd1..50df19d8bcc0a 100644
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
 @@ -2469,6 +2469,43 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
@@ -372,10 +372,10 @@ index 61fff5d34ed53..94b66987b4bb0 100644
  		void *buf, int len, unsigned int gup_flags);
  extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
 diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index 6e3bdf8e38bca..c70247dc71022 100644
+index 6894de506b364..5595422990d7b 100644
 --- a/include/linux/mm_types.h
 +++ b/include/linux/mm_types.h
-@@ -572,6 +572,9 @@ struct vm_region {
+@@ -602,6 +602,9 @@ struct vm_region {
  	unsigned long	vm_top;		/* region allocated to here */
  	unsigned long	vm_pgoff;	/* the offset in vm_file corresponding to vm_start */
  	struct file	*vm_file;	/* the backing file or NULL */
@@ -385,7 +385,7 @@ index 6e3bdf8e38bca..c70247dc71022 100644
  
  	int		vm_usage;	/* region usage count (access under nommu_region_sem) */
  	bool		vm_icache_flushed : 1; /* true if the icache has been flushed for
-@@ -747,6 +750,9 @@ struct vm_area_struct {
+@@ -777,6 +780,9 @@ struct vm_area_struct {
  	unsigned long vm_pgoff;		/* Offset (within vm_file) in PAGE_SIZE
  					   units */
  	struct file * vm_file;		/* File we map to (can be NULL). */
@@ -396,10 +396,10 @@ index 6e3bdf8e38bca..c70247dc71022 100644
  
  #ifdef CONFIG_ANON_VMA_NAME
 diff --git a/kernel/fork.c b/kernel/fork.c
-index 22f43721d031d..03abd72b3353d 100644
+index 12decadff468f..74f5a6eb055eb 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -730,7 +730,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
+@@ -737,7 +737,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
  		if (file) {
  			struct address_space *mapping = file->f_mapping;
  
@@ -418,10 +418,10 @@ index d5639b0361663..bb57f616f0325 100644
  obj-$(CONFIG_TMPFS_QUOTA) += shmem_quota.o
 +obj-y += prfile.o
 diff --git a/mm/filemap.c b/mm/filemap.c
-index 56fa431c52af7..d55fe4e7bcfd1 100644
+index fa18e71f9c889..20a5773f7e7c8 100644
 --- a/mm/filemap.c
 +++ b/mm/filemap.c
-@@ -3707,7 +3707,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
+@@ -3719,7 +3719,7 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
  	vm_fault_t ret = VM_FAULT_LOCKED;
  
  	sb_start_pagefault(mapping->host->i_sb);
@@ -431,10 +431,10 @@ index 56fa431c52af7..d55fe4e7bcfd1 100644
  	if (folio->mapping != mapping) {
  		folio_unlock(folio);
 diff --git a/mm/mmap.c b/mm/mmap.c
-index 79d541f1502b2..2dc64f6dc0181 100644
+index 6183805f6f9e6..dd11c528dd557 100644
 --- a/mm/mmap.c
 +++ b/mm/mmap.c
-@@ -1484,7 +1484,7 @@ static unsigned long __mmap_region(struct file *file, unsigned long addr,
+@@ -1489,7 +1489,7 @@ static unsigned long __mmap_region(struct file *file, unsigned long addr,
  				 * and cause general protection fault
  				 * ultimately.
  				 */
@@ -443,7 +443,7 @@ index 79d541f1502b2..2dc64f6dc0181 100644
  				vm_area_free(vma);
  				vma = merge;
  				/* Update vm_flags to pick up the change. */
-@@ -1654,6 +1654,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1670,6 +1670,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
  	unsigned long ret = -EINVAL;
  	struct file *file;
  	vm_flags_t vm_flags;
@@ -451,7 +451,7 @@ index 79d541f1502b2..2dc64f6dc0181 100644
  
  	pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/mm/remap_file_pages.rst.\n",
  		     current->comm, current->pid);
-@@ -1696,14 +1697,18 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1712,14 +1713,18 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
  
  	/* Save vm_flags used to calculate prot and flags, and recheck later. */
  	vm_flags = vma->vm_flags;
@@ -472,7 +472,7 @@ index 79d541f1502b2..2dc64f6dc0181 100644
  		return ret;
  	}
  
-@@ -1711,7 +1716,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1727,7 +1732,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
  
  	/* OK security check passed, take write lock + let it rip. */
  	if (mmap_write_lock_killable(mm)) {
@@ -481,7 +481,7 @@ index 79d541f1502b2..2dc64f6dc0181 100644
  		return -EINTR;
  	}
  
-@@ -1753,9 +1758,27 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
+@@ -1769,9 +1774,27 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
  
  	ret = do_mmap(vma->vm_file, start, size,
  			prot, flags, 0, pgoff, &populate, NULL);
@@ -646,7 +646,7 @@ index 0000000000000..b034d160a18f4
 +}
 +#endif /* !CONFIG_MMU */
 diff --git a/mm/vma.c b/mm/vma.c
-index 7621384d64cf5..3bb41fe6ac48e 100644
+index 9b4517944901d..429454b496b61 100644
 --- a/mm/vma.c
 +++ b/mm/vma.c
 @@ -248,7 +248,7 @@ static void vma_complete(struct vma_prepare *vp, struct vma_iterator *vmi,
@@ -676,7 +676,7 @@ index 7621384d64cf5..3bb41fe6ac48e 100644
  
  	if (new->vm_ops && new->vm_ops->open)
  		new->vm_ops->open(new);
-@@ -1671,7 +1671,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -1705,7 +1705,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
  		if (anon_vma_clone(new_vma, vma))
  			goto out_free_mempol;
  		if (new_vma->vm_file)
@@ -685,7 +685,7 @@ index 7621384d64cf5..3bb41fe6ac48e 100644
  		if (new_vma->vm_ops && new_vma->vm_ops->open)
  			new_vma->vm_ops->open(new_vma);
  		if (vma_link(mm, new_vma))
-@@ -1684,7 +1684,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -1718,7 +1718,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
  	vma_close(new_vma);
  
  	if (new_vma->vm_file)
@@ -695,7 +695,7 @@ index 7621384d64cf5..3bb41fe6ac48e 100644
  	unlink_anon_vmas(new_vma);
  out_free_mempol:
 SPDX-License-Identifier: GPL-2.0
-aufs6.12 standalone patch
+aufs6.12.29 standalone patch
 
 diff --git a/fs/dcache.c b/fs/dcache.c
 index 1ab11cad60e8c..3a01c42c6639e 100644
@@ -718,7 +718,7 @@ index 1ab11cad60e8c..3a01c42c6639e 100644
  /**
   * d_ancestor - search for an ancestor
 diff --git a/fs/exec.c b/fs/exec.c
-index 6c53920795c2e..22e10087e34fa 100644
+index d607943729638..9ad385c71dd55 100644
 --- a/fs/exec.c
 +++ b/fs/exec.c
 @@ -114,6 +114,7 @@ bool path_noexec(const struct path *path)
@@ -730,7 +730,7 @@ index 6c53920795c2e..22e10087e34fa 100644
  #ifdef CONFIG_USELIB
  /*
 diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 460791727fd9c..75ab59a3df36f 100644
+index ca24c8fe2aa23..23edc05095d86 100644
 --- a/fs/fcntl.c
 +++ b/fs/fcntl.c
 @@ -90,6 +90,7 @@ int setfl(int fd, struct file * filp, unsigned int arg)
@@ -742,7 +742,7 @@ index 460791727fd9c..75ab59a3df36f 100644
  /*
   * Allocate an file->f_owner struct if it doesn't exist, handling racing
 diff --git a/fs/file_table.c b/fs/file_table.c
-index eed5ffad9997c..2f6bead424786 100644
+index 18735dc8269a1..42ab3cc5aeeb9 100644
 --- a/fs/file_table.c
 +++ b/fs/file_table.c
 @@ -228,6 +228,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred)
@@ -754,10 +754,10 @@ index eed5ffad9997c..2f6bead424786 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 85739e2d64c00..8aa96de6c151e 100644
+index 3a8f55b2225d4..a6f32c184d5c5 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
-@@ -971,6 +971,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
+@@ -972,6 +972,7 @@ int is_current_mnt_ns(struct vfsmount *mnt)
  {
  	return check_mnt(real_mount(mnt));
  }
@@ -765,7 +765,7 @@ index 85739e2d64c00..8aa96de6c151e 100644
  
  /*
   * vfsmount lock must be held for write
-@@ -2200,6 +2201,7 @@ struct vfsmount *collect_mounts(const struct path *path)
+@@ -2206,6 +2207,7 @@ struct vfsmount *collect_mounts(const struct path *path)
  		return ERR_CAST(tree);
  	return &tree->mnt;
  }
@@ -773,7 +773,7 @@ index 85739e2d64c00..8aa96de6c151e 100644
  
  static void free_mnt_ns(struct mnt_namespace *);
  static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *, bool);
-@@ -2230,6 +2232,7 @@ void drop_collected_mounts(struct vfsmount *mnt)
+@@ -2236,6 +2238,7 @@ void drop_collected_mounts(struct vfsmount *mnt)
  	unlock_mount_hash();
  	namespace_unlock();
  }
@@ -781,7 +781,7 @@ index 85739e2d64c00..8aa96de6c151e 100644
  
  bool has_locked_children(struct mount *mnt, struct dentry *dentry)
  {
-@@ -2301,6 +2304,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+@@ -2307,6 +2310,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
  	}
  	return 0;
  }
@@ -814,7 +814,7 @@ index 5da4df2f9b18a..6024098fc6444 100644
  long vfs_truncate(const struct path *path, loff_t length)
  {
 diff --git a/fs/read_write.c b/fs/read_write.c
-index 64dc24afdb3a7..ec1fd6aab1759 100644
+index befec0b5c537a..622ca62653bf9 100644
 --- a/fs/read_write.c
 +++ b/fs/read_write.c
 @@ -576,6 +576,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
@@ -834,7 +834,7 @@ index 64dc24afdb3a7..ec1fd6aab1759 100644
  /* file_ppos returns &file->f_pos or NULL if file is stream */
  static inline loff_t *file_ppos(struct file *file)
 diff --git a/fs/splice.c b/fs/splice.c
-index b15fd6073b6d3..0fdb86c3813e2 100644
+index 82432ce08d484..1fd78fbab3a76 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
 @@ -940,6 +940,7 @@ ssize_t do_splice_from(struct pipe_inode_info *pipe, struct file *out,
@@ -858,7 +858,7 @@ index 05ec7e7d9e87e..e07ffa052dfb4 100644
  ssize_t
  __vfs_getxattr(struct dentry *dentry, struct inode *inode, const char *name,
 diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
-index 34b378cf7a95f..df6a751298b32 100644
+index 35e5be967209e..127a48226d10b 100644
 --- a/kernel/locking/lockdep.c
 +++ b/kernel/locking/lockdep.c
 @@ -239,6 +239,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock)
@@ -2929,7 +2929,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-04-28 09:59:24.959988804 +0200
++++ linux/fs/aufs/branch.c	2025-07-24 19:31:57.789847457 +0200
 @@ -0,0 +1,1427 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -4783,7 +4783,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	2025-04-28 09:59:24.959988804 +0200
++++ linux/fs/aufs/cpup.c	2025-07-24 19:31:57.789847457 +0200
 @@ -0,0 +1,1458 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -6245,7 +6245,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-04-28 09:59:24.959988804 +0200
++++ linux/fs/aufs/cpup.h	2025-07-24 19:31:57.789847457 +0200
 @@ -0,0 +1,101 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -6350,7 +6350,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-04-07 08:12:09.786660163 +0200
++++ linux/fs/aufs/dbgaufs.c	2025-06-19 20:53:32.793295933 +0200
 @@ -0,0 +1,526 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -7309,7 +7309,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-04-28 09:59:24.959988804 +0200
++++ linux/fs/aufs/debug.c	2025-07-24 19:31:57.789847457 +0200
 @@ -0,0 +1,448 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -7991,7 +7991,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	2025-04-07 08:12:09.786660163 +0200
++++ linux/fs/aufs/dentry.c	2025-06-19 20:53:32.793295933 +0200
 @@ -0,0 +1,1176 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -9171,7 +9171,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-04-28 09:59:24.959988804 +0200
++++ linux/fs/aufs/dentry.h	2025-07-24 19:31:57.789847457 +0200
 @@ -0,0 +1,270 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -10004,7 +10004,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-04-28 09:59:24.959988804 +0200
++++ linux/fs/aufs/dir.c	2025-07-24 19:31:57.789847457 +0200
 @@ -0,0 +1,765 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -12374,7 +12374,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-04-28 09:59:24.959988804 +0200
++++ linux/fs/aufs/dynop.c	2025-07-24 19:31:57.789847457 +0200
 @@ -0,0 +1,365 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -12824,7 +12824,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-04-28 09:59:24.959988804 +0200
++++ linux/fs/aufs/export.c	2025-07-24 19:31:57.789847457 +0200
 @@ -0,0 +1,846 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -14104,7 +14104,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	2025-04-28 09:59:24.959988804 +0200
++++ linux/fs/aufs/file.c	2025-07-24 19:31:57.789847457 +0200
 @@ -0,0 +1,858 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -15312,7 +15312,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-04-28 09:59:24.959988804 +0200
++++ linux/fs/aufs/finfo.c	2025-07-24 19:31:57.789847457 +0200
 @@ -0,0 +1,147 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -16249,7 +16249,7 @@ diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
 +};
 diff -urN /usr/share/empty/fs/aufs/fsctx.c linux/fs/aufs/fsctx.c
 --- /usr/share/empty/fs/aufs/fsctx.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/fsctx.c	2025-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/fsctx.c	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,1244 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -18347,7 +18347,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-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/hnotify.c	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,715 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -19357,7 +19357,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-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/inode.c	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,532 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -19893,7 +19893,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	2025-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/inode.h	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,727 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -20848,7 +20848,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	2025-02-04 20:03:40.679938505 +0100
++++ linux/fs/aufs/i_op_add.c	2025-06-19 20:53:32.793295933 +0200
 @@ -0,0 +1,971 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -21823,7 +21823,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	2025-04-28 09:59:30.493322137 +0200
++++ linux/fs/aufs/i_op.c	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,1526 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -23880,7 +23880,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	2025-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/i_op_ren.c	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,1264 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -25148,7 +25148,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-04-28 09:59:24.959988804 +0200
++++ linux/fs/aufs/Kconfig	2025-07-24 19:31:57.786514124 +0200
 @@ -0,0 +1,201 @@
 +# SPDX-License-Identifier: GPL-2.0
 +config AUFS_FS
@@ -25789,7 +25789,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	2022-11-05 23:02:18.959222617 +0100
++++ linux/fs/aufs/Makefile	2025-06-19 20:53:32.789962600 +0200
 @@ -0,0 +1,46 @@
 +# SPDX-License-Identifier: GPL-2.0
 +
@@ -26118,7 +26118,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-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/module.h	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,180 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -26302,7 +26302,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	2025-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/mvdown.c	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,714 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -27020,7 +27020,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-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/opts.c	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,1030 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -28054,7 +28054,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-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/opts.h	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,264 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -29181,7 +29181,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-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/rdu.c	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,384 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -29569,7 +29569,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-04-28 09:59:30.493322137 +0200
++++ linux/fs/aufs/rwsem.h	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,89 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -29982,7 +29982,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-04-07 08:12:09.789993497 +0200
++++ linux/fs/aufs/super.c	2025-06-19 20:53:32.793295933 +0200
 @@ -0,0 +1,871 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -30857,7 +30857,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-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/super.h	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,618 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -32222,7 +32222,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-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/vdir.c	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,896 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -33122,7 +33122,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	2025-04-28 09:59:30.493322137 +0200
++++ linux/fs/aufs/vfsub.c	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,966 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -34092,7 +34092,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	2025-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/vfsub.h	2025-07-24 19:31:57.793180791 +0200
 @@ -0,0 +1,441 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -34537,7 +34537,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	2025-04-28 09:59:24.963322138 +0200
++++ linux/fs/aufs/wbr_policy.c	2025-07-24 19:31:57.796514124 +0200
 @@ -0,0 +1,830 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -35371,7 +35371,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	2025-02-04 20:03:40.683271838 +0100
++++ linux/fs/aufs/whout.c	2025-06-19 20:53:32.796629267 +0200
 @@ -0,0 +1,1072 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
@@ -36912,7 +36912,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-04-28 09:59:24.966655471 +0200
++++ linux/fs/aufs/wkq.h	2025-07-24 19:31:57.796514124 +0200
 @@ -0,0 +1,89 @@
 +/* SPDX-License-Identifier: GPL-2.0 */
 +/*
@@ -39299,7 +39299,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	2025-04-28 09:59:30.496655471 +0200
++++ linux/include/uapi/linux/aufs_type.h	2025-07-24 19:32:13.479847454 +0200
 @@ -0,0 +1,452 @@
 +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 +/*
@@ -39343,7 +39343,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-20250414"
++#define AUFS_VERSION	"6.12.29-20250623"
 +
 +/* todo? move this to linux-2.6.19/include/magic.h */
 +#define AUFS_SUPER_MAGIC	('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
@@ -39754,10 +39754,10 @@ diff -urN /usr/share/empty/include/uapi/linux/aufs_type.h linux/include/uapi/lin
 +
 +#endif /* __AUFS_TYPE_H__ */
 SPDX-License-Identifier: GPL-2.0
-aufs6.12 loopback patch
+aufs6.12.29 loopback patch
 
 diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 479480f25a6c0..ba3477c30e294 100644
+index c8eba5ada9950..52b55a88c7af2 100644
 --- a/drivers/block/loop.c
 +++ b/drivers/block/loop.c
 @@ -54,7 +54,7 @@ struct loop_device {
@@ -39769,7 +39769,7 @@ index 479480f25a6c0..ba3477c30e294 100644
  	struct block_device *lo_device;
  
  	gfp_t		old_gfp_mask;
-@@ -526,6 +526,15 @@ static inline void loop_update_dio(struct loop_device *lo)
+@@ -449,6 +449,15 @@ static inline void loop_update_dio(struct loop_device *lo)
  				lo->use_dio);
  }
  
@@ -39785,7 +39785,7 @@ index 479480f25a6c0..ba3477c30e294 100644
  static void loop_reread_partitions(struct loop_device *lo)
  {
  	int rc;
-@@ -583,6 +592,7 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -525,6 +534,7 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  {
  	struct file *file = fget(arg);
  	struct file *old_file;
@@ -39793,7 +39793,7 @@ index 479480f25a6c0..ba3477c30e294 100644
  	int error;
  	bool partscan;
  	bool is_loop;
-@@ -606,11 +616,19 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -552,11 +562,19 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	if (!(lo->lo_flags & LO_FLAGS_READ_ONLY))
  		goto out_err;
  
@@ -39813,33 +39813,35 @@ index 479480f25a6c0..ba3477c30e294 100644
  
  	error = -EINVAL;
  
-@@ -586,6 +586,7 @@ static int loop_change_fd(struct loop_de
- 	disk_force_media_change(lo->lo_disk);
+@@ -569,6 +587,7 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	blk_mq_freeze_queue(lo->lo_queue);
  	mapping_set_gfp_mask(old_file->f_mapping, lo->old_gfp_mask);
-+	lo->lo_backing_virt_file = virt_file;
  	loop_assign_backing_file(lo, file);
++	lo->lo_backing_virt_file = virt_file;
  	loop_update_dio(lo);
  	blk_mq_unfreeze_queue(lo->lo_queue);
-@@ -645,6 +664,8 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+ 	partscan = lo->lo_flags & LO_FLAGS_PARTSCAN;
+@@ -588,6 +607,9 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	 * dependency.
  	 */
  	fput(old_file);
 +	if (old_virt_file)
 +		fput(old_virt_file);
-	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
++
+ 	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
  	if (partscan)
  		loop_reread_partitions(lo);
-@@ -658,6 +679,8 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
+@@ -601,6 +623,9 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
  	loop_global_unlock(lo, is_loop);
  out_putf:
  	fput(file);
 +	if (virt_file)
 +		fput(virt_file);
-	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
++
+ 	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
  	goto done;
  }
-@@ -1039,6 +1062,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -980,6 +1005,7 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
  			  const struct loop_config *config)
  {
  	struct file *file = fget(config->fd);
@@ -39847,7 +39849,7 @@ index 479480f25a6c0..ba3477c30e294 100644
  	struct queue_limits lim;
  	int error;
  	loff_t size;
-@@ -1052,6 +1076,13 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+@@ -1001,6 +1027,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);
  
@@ -39861,15 +39863,15 @@ 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.
-@@ -1084,6 +1085,7 @@ static int loop_configure(struct loop_de
- 
+@@ -1055,6 +1088,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_virt_file = virt_file;
  	loop_assign_backing_file(lo, file);
++	lo->lo_backing_virt_file = virt_file;
  
  	lim = queue_limits_start_update(lo->lo_queue);
-@@ -1150,6 +1182,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
+ 	loop_update_limits(lo, &lim, config->block_size);
+@@ -1097,6 +1131,8 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,
  		bd_abort_claiming(bdev, loop_configure);
  out_putf:
  	fput(file);
@@ -39878,7 +39880,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)
+@@ -1106,11 +1142,13 @@ static void __loop_clr_fd(struct loop_device *lo)
  {
  	struct queue_limits lim;
  	struct file *filp;
@@ -39892,7 +39894,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)
+@@ -1172,6 +1210,8 @@ static void __loop_clr_fd(struct loop_device *lo)
  	 * fput can take open_mutex which is usually taken before lo_mutex.
  	 */
  	fput(filp);
@@ -39977,7 +39979,7 @@ index 9c30cba527421..8161108d0f6d5 100644
  
  /* ---------------------------------------------------------------------- */
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 51b64b2ad82c4..8c3ff295b020b 100644
+index cb9f98b540e31..ec4579150dfb7 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
 @@ -2248,6 +2248,11 @@ struct super_operations {
diff --git a/kernel-x86.config b/kernel-x86.config
index 7fe6fb42..a1beb043 100644
--- a/kernel-x86.config
+++ b/kernel-x86.config
@@ -135,6 +135,7 @@ MITIGATION_SPECTRE_V2 x86=y
 MITIGATION_SRBDS x86=y
 MITIGATION_SSB x86=y
 MITIGATION_ITS x86_64=y
+MITIGATION_TSA x86=y
 #- file kernel/power/Kconfig goes here
 #- file drivers/acpi/Kconfig goes here
 APM i386=m
diff --git a/update-source.sh b/update-source.sh
index e76bca9e..d7e9d47d 100755
--- a/update-source.sh
+++ b/update-source.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 set -xe
 
-BRANCH=aufs6.12
+BRANCH=aufs6.12.29
 #BRANCH=aufs6.x-rcN
 
 # aufs6
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/1e2ded8a16ce9ce842c025f2e1f8eec5b6d902cc




More information about the pld-cvs-commit mailing list