[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