From e9a4861c119c2aa3ba115aa0631841dae1b5e793 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 4 Aug 2019 20:57:31 +0100 Subject: [PATCH] aufs: Update support patchset to aufs5.2 20190805 --- debian/changelog | 2 +- .../features/all/aufs5/aufs5-base.patch | 64 +++--- .../features/all/aufs5/aufs5-mmap.patch | 78 +++---- .../features/all/aufs5/aufs5-standalone.patch | 214 +++++++++--------- 4 files changed, 167 insertions(+), 191 deletions(-) diff --git a/debian/changelog b/debian/changelog index 0155233a4829..658eedb9c104 100644 --- a/debian/changelog +++ b/debian/changelog @@ -24,9 +24,9 @@ linux (5.2.5-1) UNRELEASED; urgency=medium * liblockdep: Disable until it can be built again * libcpupower: Bump soversion since 2 exported functions have been removed * libbpf: Stop overriding upstream soname; rename shlib package to libbpf0 - * aufs: Update support patchset to aufs5.1 20190520 * vfs: Enable FS_ENCRYPTION as built-in; disable on armel/marvell * net: Enable NET_DEVLINK as built-in; disable on armel/marvell + * aufs: Update support patchset to aufs5.2 20190805 [ Vagrant Cascadian ] * [arm64] Enable modules to support audio on pinebook: SND_SUN4I_I2S, diff --git a/debian/patches/features/all/aufs5/aufs5-base.patch b/debian/patches/features/all/aufs5/aufs5-base.patch index 212ca0aae7fe..15ae57d358e5 100644 --- a/debian/patches/features/all/aufs5/aufs5-base.patch +++ b/debian/patches/features/all/aufs5/aufs5-base.patch @@ -1,19 +1,19 @@ From: J. R. Okajima -Date: Sun May 19 09:46:26 2019 +0900 -Subject: aufs5.1 base patch -Origin: https://github.com/sfjro/aufs5-standalone/tree/364ef5727008f0b8140df72b03953196a2dde794 +Date: Fri Jul 12 22:29:09 2019 +0900 +Subject: aufs5.2 base patch +Origin: https://github.com/sfjro/aufs5-standalone/tree/ba5f036b095583e48446c0b11db1faa69be3d948 Bug-Debian: https://bugs.debian.org/541828 Patch headers added by debian/bin/genpatch-aufs SPDX-License-Identifier: GPL-2.0 -aufs5.1 base patch +aufs5.2 base patch diff --git a/MAINTAINERS b/MAINTAINERS -index 2c2fce72e694..f5be2663b01e 100644 +index 677ef41cb012..c2a7491ddc68 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -2699,6 +2699,19 @@ F: include/linux/audit.h +@@ -2769,6 +2769,19 @@ F: include/linux/audit.h F: include/uapi/linux/audit.h F: kernel/audit* @@ -34,10 +34,10 @@ index 2c2fce72e694..f5be2663b01e 100644 M: Miguel Ojeda Sandonis S: Maintained diff --git a/drivers/block/loop.c b/drivers/block/loop.c -index bf1c61cab8eb..7e18c8c72dcc 100644 +index f11b7dc16e9d..1b723737592b 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c -@@ -738,6 +738,24 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev, +@@ -746,6 +746,24 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev, return error; } @@ -63,7 +63,7 @@ index bf1c61cab8eb..7e18c8c72dcc 100644 static ssize_t loop_attr_show(struct device *dev, char *page, diff --git a/fs/dcache.c b/fs/dcache.c -index aac41adf4743..fc18967c2522 100644 +index c435398f2c81..a688a042d022 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -1247,7 +1247,7 @@ enum d_walk_ret { @@ -76,7 +76,7 @@ index aac41adf4743..fc18967c2522 100644 { struct dentry *this_parent; diff --git a/fs/fcntl.c b/fs/fcntl.c -index 083185174c6d..78234ee16784 100644 +index 3d40771e8e7c..d62303c5472a 100644 --- a/fs/fcntl.c +++ b/fs/fcntl.c @@ -32,7 +32,7 @@ @@ -98,10 +98,10 @@ index 083185174c6d..78234ee16784 100644 return error; diff --git a/fs/inode.c b/fs/inode.c -index 9a453f3637f8..ee4434cea572 100644 +index 2bf21e2c90fc..9b908c37971f 100644 --- a/fs/inode.c +++ b/fs/inode.c -@@ -1657,7 +1657,7 @@ EXPORT_SYMBOL(generic_update_time); +@@ -1670,7 +1670,7 @@ EXPORT_SYMBOL(generic_update_time); * This does the actual work of updating an inodes time or version. Must have * had called mnt_want_write() before calling this. */ @@ -111,10 +111,10 @@ index 9a453f3637f8..ee4434cea572 100644 int (*update_time)(struct inode *, struct timespec64 *, int); diff --git a/fs/namespace.c b/fs/namespace.c -index c9cab307fa77..e56de0b2bee0 100644 +index 6fbc9126367a..101dda59f39c 100644 --- a/fs/namespace.c +++ b/fs/namespace.c -@@ -769,6 +769,12 @@ static inline int check_mnt(struct mount *mnt) +@@ -770,6 +770,12 @@ static inline int check_mnt(struct mount *mnt) return mnt->mnt_ns == current->nsproxy->mnt_ns; } @@ -128,10 +128,10 @@ index c9cab307fa77..e56de0b2bee0 100644 * vfsmount lock must be held for write */ diff --git a/fs/read_write.c b/fs/read_write.c -index 61b43ad7608e..8979e01e9bf0 100644 +index c543d965e288..35ab54e0a994 100644 --- a/fs/read_write.c +++ b/fs/read_write.c -@@ -489,6 +489,28 @@ static ssize_t __vfs_write(struct file *file, const char __user *p, +@@ -498,6 +498,28 @@ static ssize_t __vfs_write(struct file *file, const char __user *p, return -EINVAL; } @@ -161,10 +161,10 @@ index 61b43ad7608e..8979e01e9bf0 100644 { mm_segment_t old_fs; diff --git a/fs/splice.c b/fs/splice.c -index 25212dcca2df..9629564ee8f2 100644 +index 14cb602d9a2f..58d2692c5f30 100644 --- a/fs/splice.c +++ b/fs/splice.c -@@ -833,8 +833,8 @@ EXPORT_SYMBOL(generic_splice_sendpage); +@@ -834,8 +834,8 @@ EXPORT_SYMBOL(generic_splice_sendpage); /* * Attempt to initiate a splice from pipe to file. */ @@ -175,7 +175,7 @@ index 25212dcca2df..9629564ee8f2 100644 { ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); -@@ -850,9 +850,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, +@@ -851,9 +851,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, /* * Attempt to initiate a splice from a file to a pipe. */ @@ -189,7 +189,7 @@ index 25212dcca2df..9629564ee8f2 100644 ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); diff --git a/fs/sync.c b/fs/sync.c -index b54e0541ad89..28607828e96f 100644 +index 4d1ff010bc5a..457f4e4a5cc1 100644 --- a/fs/sync.c +++ b/fs/sync.c @@ -28,7 +28,7 @@ @@ -202,10 +202,10 @@ index b54e0541ad89..28607828e96f 100644 if (wait) sync_inodes_sb(sb); diff --git a/include/linux/fs.h b/include/linux/fs.h -index dd28e7679089..77933034b50a 100644 +index f7fdfe93e25d..28593b894e7b 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -1327,6 +1327,7 @@ extern void fasync_free(struct fasync_struct *); +@@ -1333,6 +1333,7 @@ extern void fasync_free(struct fasync_struct *); /* can be called from interrupts */ extern void kill_fasync(struct fasync_struct **, int, int); @@ -213,7 +213,7 @@ index dd28e7679089..77933034b50a 100644 extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force); extern int f_setown(struct file *filp, unsigned long arg, int force); extern void f_delown(struct file *filp); -@@ -1806,6 +1807,7 @@ struct file_operations { +@@ -1812,6 +1813,7 @@ struct file_operations { ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); int (*check_flags)(int); @@ -221,7 +221,7 @@ index dd28e7679089..77933034b50a 100644 int (*flock) (struct file *, int, struct file_lock *); 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); -@@ -1876,6 +1878,12 @@ ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector, +@@ -1882,6 +1884,12 @@ ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector, struct iovec *fast_pointer, struct iovec **ret_pointer); @@ -234,7 +234,7 @@ index dd28e7679089..77933034b50a 100644 extern ssize_t __vfs_read(struct file *, char __user *, size_t, loff_t *); extern ssize_t vfs_read(struct file *, char __user *, size_t, loff_t *); extern ssize_t vfs_write(struct file *, const char __user *, size_t, loff_t *); -@@ -2306,6 +2314,7 @@ extern int current_umask(void); +@@ -2315,6 +2323,7 @@ extern int current_umask(void); extern void ihold(struct inode * inode); extern void iput(struct inode *); extern int generic_update_time(struct inode *, struct timespec64 *, int); @@ -242,7 +242,7 @@ index dd28e7679089..77933034b50a 100644 /* /sys/fs */ extern struct kobject *fs_kobj; -@@ -2594,6 +2603,7 @@ static inline bool sb_is_blkdev_sb(struct super_block *sb) +@@ -2603,6 +2612,7 @@ static inline bool sb_is_blkdev_sb(struct super_block *sb) return false; } #endif @@ -251,10 +251,10 @@ index dd28e7679089..77933034b50a 100644 extern const struct file_operations def_blk_fops; extern const struct file_operations def_chr_fops; diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h -index 79c3873d58ac..470795d9f4a2 100644 +index 6e2377e6c1d6..5a945d18a72a 100644 --- a/include/linux/lockdep.h +++ b/include/linux/lockdep.h -@@ -320,6 +320,8 @@ static inline int lockdep_match_key(struct lockdep_map *lock, +@@ -325,6 +325,8 @@ static inline int lockdep_match_key(struct lockdep_map *lock, return lock->key == key; } @@ -263,7 +263,7 @@ index 79c3873d58ac..470795d9f4a2 100644 /* * Acquire a lock. * -@@ -458,6 +460,7 @@ struct lockdep_map { }; +@@ -463,6 +465,7 @@ struct lockdep_map { }; #define lockdep_depth(tsk) (0) @@ -306,10 +306,10 @@ index 74b4911ac16d..19789fbea567 100644 + unsigned int flags); #endif diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c -index e221be724fe8..c738ac7c3a46 100644 +index c47788fa85f9..3c35a1059890 100644 --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c -@@ -151,7 +151,7 @@ static +@@ -152,7 +152,7 @@ static #endif struct lock_class lock_classes[MAX_LOCKDEP_KEYS]; @@ -318,7 +318,7 @@ index e221be724fe8..c738ac7c3a46 100644 { if (!hlock->class_idx) { /* -@@ -162,6 +162,7 @@ static inline struct lock_class *hlock_class(struct held_lock *hlock) +@@ -163,6 +163,7 @@ static inline struct lock_class *hlock_class(struct held_lock *hlock) } return lock_classes + hlock->class_idx - 1; } diff --git a/debian/patches/features/all/aufs5/aufs5-mmap.patch b/debian/patches/features/all/aufs5/aufs5-mmap.patch index 8517f4b08d85..f986696c863c 100644 --- a/debian/patches/features/all/aufs5/aufs5-mmap.patch +++ b/debian/patches/features/all/aufs5/aufs5-mmap.patch @@ -1,18 +1,16 @@ From: J. R. Okajima -Date: Sun May 19 09:46:26 2019 +0900 -Subject: aufs5.1 mmap patch -Origin: https://github.com/sfjro/aufs5-standalone/tree/364ef5727008f0b8140df72b03953196a2dde794 +Date: Fri Jul 12 22:29:09 2019 +0900 +Subject: aufs5.2 mmap patch +Origin: https://github.com/sfjro/aufs5-standalone/tree/ba5f036b095583e48446c0b11db1faa69be3d948 Bug-Debian: https://bugs.debian.org/541828 Patch headers added by debian/bin/genpatch-aufs SPDX-License-Identifier: GPL-2.0 -aufs5.1 mmap patch +aufs5.2 mmap patch -Index: debian-kernel/fs/proc/base.c -=================================================================== ---- debian-kernel.orig/fs/proc/base.c -+++ debian-kernel/fs/proc/base.c +--- a/fs/proc/base.c ++++ b/fs/proc/base.c @@ -2020,7 +2020,7 @@ static int map_files_get_link(struct den rc = -ENOENT; vma = find_exact_vma(mm, vm_start, vm_end); @@ -22,10 +20,8 @@ Index: debian-kernel/fs/proc/base.c path_get(path); rc = 0; } -Index: debian-kernel/fs/proc/nommu.c -=================================================================== ---- debian-kernel.orig/fs/proc/nommu.c -+++ debian-kernel/fs/proc/nommu.c +--- a/fs/proc/nommu.c ++++ b/fs/proc/nommu.c @@ -41,7 +41,10 @@ static int nommu_region_show(struct seq_ file = region->vm_file; @@ -38,10 +34,8 @@ Index: debian-kernel/fs/proc/nommu.c dev = inode->i_sb->s_dev; ino = inode->i_ino; } -Index: debian-kernel/fs/proc/task_mmu.c -=================================================================== ---- debian-kernel.orig/fs/proc/task_mmu.c -+++ debian-kernel/fs/proc/task_mmu.c +--- a/fs/proc/task_mmu.c ++++ b/fs/proc/task_mmu.c @@ -309,7 +309,10 @@ show_map_vma(struct seq_file *m, struct const char *name = NULL; @@ -63,10 +57,8 @@ Index: debian-kernel/fs/proc/task_mmu.c struct mm_struct *mm = vma->vm_mm; struct mm_walk walk = { .hugetlb_entry = gather_hugetlb_stats, -Index: debian-kernel/fs/proc/task_nommu.c -=================================================================== ---- debian-kernel.orig/fs/proc/task_nommu.c -+++ debian-kernel/fs/proc/task_nommu.c +--- a/fs/proc/task_nommu.c ++++ b/fs/proc/task_nommu.c @@ -155,7 +155,10 @@ static int nommu_vma_show(struct seq_fil file = vma->vm_file; @@ -79,10 +71,8 @@ Index: debian-kernel/fs/proc/task_nommu.c dev = inode->i_sb->s_dev; ino = inode->i_ino; pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT; -Index: debian-kernel/include/linux/mm.h -=================================================================== ---- debian-kernel.orig/include/linux/mm.h -+++ debian-kernel/include/linux/mm.h +--- a/include/linux/mm.h ++++ b/include/linux/mm.h @@ -1558,6 +1558,28 @@ static inline void unmap_shared_mapping_ unmap_mapping_range(mapping, holebegin, holelen, 0); } @@ -112,10 +102,8 @@ Index: debian-kernel/include/linux/mm.h extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, unsigned int gup_flags); extern int access_remote_vm(struct mm_struct *mm, unsigned long addr, -Index: debian-kernel/include/linux/mm_types.h -=================================================================== ---- debian-kernel.orig/include/linux/mm_types.h -+++ debian-kernel/include/linux/mm_types.h +--- a/include/linux/mm_types.h ++++ b/include/linux/mm_types.h @@ -253,6 +253,7 @@ struct vm_region { unsigned long vm_top; /* region allocated to here */ unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */ @@ -132,10 +120,8 @@ Index: debian-kernel/include/linux/mm_types.h void * vm_private_data; /* was vm_pte (shared mem) */ atomic_long_t swap_readahead_info; -Index: debian-kernel/kernel/fork.c -=================================================================== ---- debian-kernel.orig/kernel/fork.c -+++ debian-kernel/kernel/fork.c +--- a/kernel/fork.c ++++ b/kernel/fork.c @@ -553,7 +553,7 @@ static __latent_entropy int dup_mmap(str struct inode *inode = file_inode(file); struct address_space *mapping = file->f_mapping; @@ -145,10 +131,8 @@ Index: debian-kernel/kernel/fork.c if (tmp->vm_flags & VM_DENYWRITE) atomic_dec(&inode->i_writecount); i_mmap_lock_write(mapping); -Index: debian-kernel/mm/Makefile -=================================================================== ---- debian-kernel.orig/mm/Makefile -+++ debian-kernel/mm/Makefile +--- a/mm/Makefile ++++ b/mm/Makefile @@ -39,7 +39,7 @@ obj-y := filemap.o mempool.o oom_kill. mm_init.o mmu_context.o percpu.o slab_common.o \ compaction.o vmacache.o \ @@ -158,10 +142,8 @@ Index: debian-kernel/mm/Makefile # Give 'page_alloc' its own module-parameter namespace page-alloc-y := page_alloc.o -Index: debian-kernel/mm/filemap.c -=================================================================== ---- debian-kernel.orig/mm/filemap.c -+++ debian-kernel/mm/filemap.c +--- a/mm/filemap.c ++++ b/mm/filemap.c @@ -2723,7 +2723,7 @@ vm_fault_t filemap_page_mkwrite(struct v vm_fault_t ret = VM_FAULT_LOCKED; @@ -171,10 +153,8 @@ Index: debian-kernel/mm/filemap.c lock_page(page); if (page->mapping != inode->i_mapping) { unlock_page(page); -Index: debian-kernel/mm/mmap.c -=================================================================== ---- debian-kernel.orig/mm/mmap.c -+++ debian-kernel/mm/mmap.c +--- a/mm/mmap.c ++++ b/mm/mmap.c @@ -182,7 +182,7 @@ static struct vm_area_struct *remove_vma if (vma->vm_ops && vma->vm_ops->close) vma->vm_ops->close(vma); @@ -268,10 +248,8 @@ Index: debian-kernel/mm/mmap.c if (new_vma->vm_ops && new_vma->vm_ops->open) new_vma->vm_ops->open(new_vma); vma_link(mm, new_vma, prev, rb_link, rb_parent); -Index: debian-kernel/mm/nommu.c -=================================================================== ---- debian-kernel.orig/mm/nommu.c -+++ debian-kernel/mm/nommu.c +--- a/mm/nommu.c ++++ b/mm/nommu.c @@ -640,7 +640,7 @@ static void __put_nommu_region(struct vm up_write(&nommu_region_sem); @@ -312,10 +290,8 @@ Index: debian-kernel/mm/nommu.c vm_area_free(vma); return ret; -Index: debian-kernel/mm/prfile.c -=================================================================== --- /dev/null -+++ debian-kernel/mm/prfile.c ++++ b/mm/prfile.c @@ -0,0 +1,86 @@ +// SPDX-License-Identifier: GPL-2.0 +/* diff --git a/debian/patches/features/all/aufs5/aufs5-standalone.patch b/debian/patches/features/all/aufs5/aufs5-standalone.patch index 0972c70acfe8..145691c0eea9 100644 --- a/debian/patches/features/all/aufs5/aufs5-standalone.patch +++ b/debian/patches/features/all/aufs5/aufs5-standalone.patch @@ -1,19 +1,19 @@ From: J. R. Okajima -Date: Sun May 19 09:46:26 2019 +0900 -Subject: aufs5.1 standalone patch -Origin: https://github.com/sfjro/aufs5-standalone/tree/364ef5727008f0b8140df72b03953196a2dde794 +Date: Fri Jul 12 22:29:09 2019 +0900 +Subject: aufs5.2 standalone patch +Origin: https://github.com/sfjro/aufs5-standalone/tree/ba5f036b095583e48446c0b11db1faa69be3d948 Bug-Debian: https://bugs.debian.org/541828 Patch headers added by debian/bin/genpatch-aufs SPDX-License-Identifier: GPL-2.0 -aufs5.1 standalone patch +aufs5.2 standalone patch -Index: debian-kernel/fs/dcache.c -=================================================================== ---- debian-kernel.orig/fs/dcache.c -+++ debian-kernel/fs/dcache.c -@@ -1352,6 +1352,7 @@ rename_retry: +diff --git a/fs/dcache.c b/fs/dcache.c +index a688a042d022..3fc74e471924 100644 +--- a/fs/dcache.c ++++ b/fs/dcache.c +@@ -1352,6 +1352,7 @@ void d_walk(struct dentry *parent, void *data, seq = 1; goto again; } @@ -21,7 +21,7 @@ Index: debian-kernel/fs/dcache.c struct check_mount { struct vfsmount *mnt; -@@ -2850,6 +2851,7 @@ void d_exchange(struct dentry *dentry1, +@@ -2850,6 +2851,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2) write_sequnlock(&rename_lock); } @@ -29,11 +29,11 @@ Index: debian-kernel/fs/dcache.c /** * d_ancestor - search for an ancestor -Index: debian-kernel/fs/exec.c -=================================================================== ---- debian-kernel.orig/fs/exec.c -+++ debian-kernel/fs/exec.c -@@ -110,6 +110,7 @@ bool path_noexec(const struct path *path +diff --git a/fs/exec.c b/fs/exec.c +index 89a500bb897a..1a722915ed77 100644 +--- a/fs/exec.c ++++ b/fs/exec.c +@@ -110,6 +110,7 @@ bool path_noexec(const struct path *path) return (path->mnt->mnt_flags & MNT_NOEXEC) || (path->mnt->mnt_sb->s_iflags & SB_I_NOEXEC); } @@ -41,11 +41,11 @@ Index: debian-kernel/fs/exec.c #ifdef CONFIG_USELIB /* -Index: debian-kernel/fs/fcntl.c -=================================================================== ---- debian-kernel.orig/fs/fcntl.c -+++ debian-kernel/fs/fcntl.c -@@ -85,6 +85,7 @@ int setfl(int fd, struct file * filp, un +diff --git a/fs/fcntl.c b/fs/fcntl.c +index d62303c5472a..d4ad34463848 100644 +--- a/fs/fcntl.c ++++ b/fs/fcntl.c +@@ -85,6 +85,7 @@ int setfl(int fd, struct file * filp, unsigned long arg) out: return error; } @@ -53,11 +53,11 @@ Index: debian-kernel/fs/fcntl.c static void f_modown(struct file *filp, struct pid *pid, enum pid_type type, int force) -Index: debian-kernel/fs/file_table.c -=================================================================== ---- debian-kernel.orig/fs/file_table.c -+++ debian-kernel/fs/file_table.c -@@ -162,6 +162,7 @@ over: +diff --git a/fs/file_table.c b/fs/file_table.c +index b07b53f24ff5..34b9bbf4c556 100644 +--- a/fs/file_table.c ++++ b/fs/file_table.c +@@ -162,6 +162,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred) } return ERR_PTR(-ENFILE); } @@ -81,11 +81,11 @@ Index: debian-kernel/fs/file_table.c void __init files_init(void) { -Index: debian-kernel/fs/inode.c -=================================================================== ---- debian-kernel.orig/fs/inode.c -+++ debian-kernel/fs/inode.c -@@ -1679,6 +1679,7 @@ int update_time(struct inode *inode, str +diff --git a/fs/inode.c b/fs/inode.c +index 9b908c37971f..ed54d3759219 100644 +--- a/fs/inode.c ++++ b/fs/inode.c +@@ -1679,6 +1679,7 @@ int update_time(struct inode *inode, struct timespec64 *time, int flags) return update_time(inode, time, flags); } @@ -93,11 +93,11 @@ Index: debian-kernel/fs/inode.c /** * touch_atime - update the access time -Index: debian-kernel/fs/namespace.c -=================================================================== ---- debian-kernel.orig/fs/namespace.c -+++ debian-kernel/fs/namespace.c -@@ -436,6 +436,7 @@ void __mnt_drop_write(struct vfsmount *m +diff --git a/fs/namespace.c b/fs/namespace.c +index 101dda59f39c..6cb11bd6ff9a 100644 +--- a/fs/namespace.c ++++ b/fs/namespace.c +@@ -436,6 +436,7 @@ void __mnt_drop_write(struct vfsmount *mnt) mnt_dec_writers(real_mount(mnt)); preempt_enable(); } @@ -105,7 +105,7 @@ Index: debian-kernel/fs/namespace.c /** * mnt_drop_write - give up write access to a mount -@@ -775,6 +776,7 @@ int is_current_mnt_ns(struct vfsmount *m +@@ -775,6 +776,7 @@ int is_current_mnt_ns(struct vfsmount *mnt) { return check_mnt(real_mount(mnt)); } @@ -113,7 +113,7 @@ Index: debian-kernel/fs/namespace.c /* * vfsmount lock must be held for write -@@ -1908,6 +1910,7 @@ int iterate_mounts(int (*f)(struct vfsmo +@@ -1908,6 +1910,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, } return 0; } @@ -121,11 +121,11 @@ Index: debian-kernel/fs/namespace.c static void lock_mnt_tree(struct mount *mnt) { -Index: debian-kernel/fs/notify/group.c -=================================================================== ---- debian-kernel.orig/fs/notify/group.c -+++ debian-kernel/fs/notify/group.c -@@ -99,6 +99,7 @@ void fsnotify_get_group(struct fsnotify_ +diff --git a/fs/notify/group.c b/fs/notify/group.c +index 0391190305cc..0b9f7f6d8390 100644 +--- a/fs/notify/group.c ++++ b/fs/notify/group.c +@@ -99,6 +99,7 @@ void fsnotify_get_group(struct fsnotify_group *group) { refcount_inc(&group->refcnt); } @@ -133,7 +133,7 @@ Index: debian-kernel/fs/notify/group.c /* * Drop a reference to a group. Free it if it's through. -@@ -108,6 +109,7 @@ void fsnotify_put_group(struct fsnotify_ +@@ -108,6 +109,7 @@ void fsnotify_put_group(struct fsnotify_group *group) if (refcount_dec_and_test(&group->refcnt)) fsnotify_final_destroy_group(group); } @@ -141,7 +141,7 @@ Index: debian-kernel/fs/notify/group.c /* * Create a new fsnotify_group and hold a reference for the group returned. -@@ -137,6 +139,7 @@ struct fsnotify_group *fsnotify_alloc_gr +@@ -137,6 +139,7 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops) return group; } @@ -149,11 +149,11 @@ Index: debian-kernel/fs/notify/group.c int fsnotify_fasync(int fd, struct file *file, int on) { -Index: debian-kernel/fs/notify/mark.c -=================================================================== ---- debian-kernel.orig/fs/notify/mark.c -+++ debian-kernel/fs/notify/mark.c -@@ -276,6 +276,7 @@ void fsnotify_put_mark(struct fsnotify_m +diff --git a/fs/notify/mark.c b/fs/notify/mark.c +index 99ddd126f6f0..2154d69a2c7a 100644 +--- a/fs/notify/mark.c ++++ b/fs/notify/mark.c +@@ -276,6 +276,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark) queue_delayed_work(system_unbound_wq, &reaper_work, FSNOTIFY_REAPER_DELAY); } @@ -161,7 +161,7 @@ Index: debian-kernel/fs/notify/mark.c /* * Get mark reference when we found the mark via lockless traversal of object -@@ -430,6 +431,7 @@ void fsnotify_destroy_mark(struct fsnoti +@@ -430,6 +431,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark, mutex_unlock(&group->mark_mutex); fsnotify_free_mark(mark); } @@ -169,7 +169,7 @@ Index: debian-kernel/fs/notify/mark.c /* * Sorting function for lists of fsnotify marks. -@@ -685,6 +687,7 @@ int fsnotify_add_mark(struct fsnotify_ma +@@ -685,6 +687,7 @@ int fsnotify_add_mark(struct fsnotify_mark *mark, fsnotify_connp_t *connp, mutex_unlock(&group->mark_mutex); return ret; } @@ -177,7 +177,7 @@ Index: debian-kernel/fs/notify/mark.c /* * Given a list of marks, find the mark associated with given group. If found -@@ -809,6 +812,7 @@ void fsnotify_init_mark(struct fsnotify_ +@@ -809,6 +812,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark, mark->group = group; WRITE_ONCE(mark->connector, NULL); } @@ -185,11 +185,11 @@ Index: debian-kernel/fs/notify/mark.c /* * Destroy all marks in destroy_list, waits for SRCU period to finish before -Index: debian-kernel/fs/open.c -=================================================================== ---- debian-kernel.orig/fs/open.c -+++ debian-kernel/fs/open.c -@@ -65,6 +65,7 @@ int do_truncate(struct dentry *dentry, l +diff --git a/fs/open.c b/fs/open.c +index b5b80469b93d..eb818f6b9519 100644 +--- a/fs/open.c ++++ b/fs/open.c +@@ -65,6 +65,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, inode_unlock(dentry->d_inode); return ret; } @@ -197,11 +197,11 @@ Index: debian-kernel/fs/open.c long vfs_truncate(const struct path *path, loff_t length) { -Index: debian-kernel/fs/read_write.c -=================================================================== ---- debian-kernel.orig/fs/read_write.c -+++ debian-kernel/fs/read_write.c -@@ -468,6 +468,7 @@ ssize_t vfs_read(struct file *file, char +diff --git a/fs/read_write.c b/fs/read_write.c +index 35ab54e0a994..9da238d64ea4 100644 +--- a/fs/read_write.c ++++ b/fs/read_write.c +@@ -468,6 +468,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos) return ret; } @@ -217,7 +217,7 @@ Index: debian-kernel/fs/read_write.c vfs_writef_t vfs_writef(struct file *file) { -@@ -519,6 +521,7 @@ vfs_writef_t vfs_writef(struct file *fil +@@ -519,6 +521,7 @@ vfs_writef_t vfs_writef(struct file *file) return new_sync_write; return ERR_PTR(-ENOSYS); } @@ -225,7 +225,7 @@ Index: debian-kernel/fs/read_write.c ssize_t __kernel_write(struct file *file, const void *buf, size_t count, loff_t *pos) { -@@ -588,6 +591,7 @@ ssize_t vfs_write(struct file *file, con +@@ -588,6 +591,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_ return ret; } @@ -233,11 +233,11 @@ Index: debian-kernel/fs/read_write.c /* file_ppos returns &file->f_pos or NULL if file is stream */ static inline loff_t *file_ppos(struct file *file) -Index: debian-kernel/fs/splice.c -=================================================================== ---- debian-kernel.orig/fs/splice.c -+++ debian-kernel/fs/splice.c -@@ -847,6 +847,7 @@ long do_splice_from(struct pipe_inode_in +diff --git a/fs/splice.c b/fs/splice.c +index 58d2692c5f30..4fe4afa7f6b1 100644 +--- a/fs/splice.c ++++ b/fs/splice.c +@@ -847,6 +847,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out, return splice_write(pipe, out, ppos, len, flags); } @@ -245,7 +245,7 @@ Index: debian-kernel/fs/splice.c /* * Attempt to initiate a splice from a file to a pipe. -@@ -876,6 +877,7 @@ long do_splice_to(struct file *in, loff_ +@@ -876,6 +877,7 @@ long do_splice_to(struct file *in, loff_t *ppos, return splice_read(in, ppos, pipe, len, flags); } @@ -253,11 +253,11 @@ Index: debian-kernel/fs/splice.c /** * splice_direct_to_actor - splices data directly between two non-pipes -Index: debian-kernel/fs/sync.c -=================================================================== ---- debian-kernel.orig/fs/sync.c -+++ debian-kernel/fs/sync.c -@@ -39,6 +39,7 @@ int __sync_filesystem(struct super_block +diff --git a/fs/sync.c b/fs/sync.c +index 457f4e4a5cc1..67c66358f3fe 100644 +--- a/fs/sync.c ++++ b/fs/sync.c +@@ -39,6 +39,7 @@ int __sync_filesystem(struct super_block *sb, int wait) sb->s_op->sync_fs(sb, wait); return __sync_blockdev(sb->s_bdev, wait); } @@ -265,11 +265,11 @@ Index: debian-kernel/fs/sync.c /* * Write out and wait upon all dirty data associated with this -Index: debian-kernel/fs/xattr.c -=================================================================== ---- debian-kernel.orig/fs/xattr.c -+++ debian-kernel/fs/xattr.c -@@ -296,6 +296,7 @@ vfs_getxattr_alloc(struct dentry *dentry +diff --git a/fs/xattr.c b/fs/xattr.c +index 90dd78f0eb27..40b01dd1b14a 100644 +--- a/fs/xattr.c ++++ b/fs/xattr.c +@@ -296,6 +296,7 @@ vfs_getxattr_alloc(struct dentry *dentry, const char *name, char **xattr_value, *xattr_value = value; return error; } @@ -277,11 +277,11 @@ Index: debian-kernel/fs/xattr.c ssize_t __vfs_getxattr(struct dentry *dentry, struct inode *inode, const char *name, -Index: debian-kernel/kernel/locking/lockdep.c -=================================================================== ---- debian-kernel.orig/kernel/locking/lockdep.c -+++ debian-kernel/kernel/locking/lockdep.c -@@ -163,6 +163,7 @@ inline struct lock_class *lockdep_hlock_ +diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c +index 3c35a1059890..67dccde036a2 100644 +--- a/kernel/locking/lockdep.c ++++ b/kernel/locking/lockdep.c +@@ -163,6 +163,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock) } return lock_classes + hlock->class_idx - 1; } @@ -289,29 +289,29 @@ Index: debian-kernel/kernel/locking/lockdep.c #define hlock_class(hlock) lockdep_hlock_class(hlock) #ifdef CONFIG_LOCK_STAT -Index: debian-kernel/kernel/task_work.c -=================================================================== ---- debian-kernel.orig/kernel/task_work.c -+++ debian-kernel/kernel/task_work.c -@@ -117,3 +117,4 @@ void task_work_run(void) +diff --git a/kernel/task_work.c b/kernel/task_work.c +index 0fef395662a6..83fb1ecfc33d 100644 +--- a/kernel/task_work.c ++++ b/kernel/task_work.c +@@ -116,3 +116,4 @@ void task_work_run(void) } while (work); } } +EXPORT_SYMBOL_GPL(task_work_run); -Index: debian-kernel/security/device_cgroup.c -=================================================================== ---- debian-kernel.orig/security/device_cgroup.c -+++ debian-kernel/security/device_cgroup.c -@@ -824,3 +824,4 @@ int __devcgroup_check_permission(short t +diff --git a/security/device_cgroup.c b/security/device_cgroup.c +index dc28914fa72e..c2ddfea2b280 100644 +--- a/security/device_cgroup.c ++++ b/security/device_cgroup.c +@@ -824,3 +824,4 @@ int __devcgroup_check_permission(short type, u32 major, u32 minor, return 0; } +EXPORT_SYMBOL_GPL(__devcgroup_check_permission); -Index: debian-kernel/security/security.c -=================================================================== ---- debian-kernel.orig/security/security.c -+++ debian-kernel/security/security.c -@@ -997,6 +997,7 @@ int security_path_rmdir(const struct pat +diff --git a/security/security.c b/security/security.c +index f493db0bf62a..96f118be469f 100644 +--- a/security/security.c ++++ b/security/security.c +@@ -993,6 +993,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry) return 0; return call_int_hook(path_rmdir, 0, dir, dentry); } @@ -319,7 +319,7 @@ Index: debian-kernel/security/security.c int security_path_unlink(const struct path *dir, struct dentry *dentry) { -@@ -1013,6 +1014,7 @@ int security_path_symlink(const struct p +@@ -1009,6 +1010,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry, return 0; return call_int_hook(path_symlink, 0, dir, dentry, old_name); } @@ -327,7 +327,7 @@ Index: debian-kernel/security/security.c int security_path_link(struct dentry *old_dentry, const struct path *new_dir, struct dentry *new_dentry) -@@ -1021,6 +1023,7 @@ int security_path_link(struct dentry *ol +@@ -1017,6 +1019,7 @@ int security_path_link(struct dentry *old_dentry, const struct path *new_dir, return 0; return call_int_hook(path_link, 0, old_dentry, new_dir, new_dentry); } @@ -335,7 +335,7 @@ Index: debian-kernel/security/security.c int security_path_rename(const struct path *old_dir, struct dentry *old_dentry, const struct path *new_dir, struct dentry *new_dentry, -@@ -1048,6 +1051,7 @@ int security_path_truncate(const struct +@@ -1044,6 +1047,7 @@ int security_path_truncate(const struct path *path) return 0; return call_int_hook(path_truncate, 0, path); } @@ -343,7 +343,7 @@ Index: debian-kernel/security/security.c int security_path_chmod(const struct path *path, umode_t mode) { -@@ -1055,6 +1059,7 @@ int security_path_chmod(const struct pat +@@ -1051,6 +1055,7 @@ int security_path_chmod(const struct path *path, umode_t mode) return 0; return call_int_hook(path_chmod, 0, path, mode); } @@ -351,7 +351,7 @@ Index: debian-kernel/security/security.c int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid) { -@@ -1062,6 +1067,7 @@ int security_path_chown(const struct pat +@@ -1058,6 +1063,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid) return 0; return call_int_hook(path_chown, 0, path, uid, gid); } @@ -359,7 +359,7 @@ Index: debian-kernel/security/security.c int security_path_chroot(const struct path *path) { -@@ -1162,6 +1168,7 @@ int security_inode_permission(struct ino +@@ -1158,6 +1164,7 @@ int security_inode_permission(struct inode *inode, int mask) return 0; return call_int_hook(inode_permission, 0, inode, mask); } @@ -367,7 +367,7 @@ Index: debian-kernel/security/security.c int security_inode_setattr(struct dentry *dentry, struct iattr *attr) { -@@ -1339,6 +1346,7 @@ int security_file_permission(struct file +@@ -1335,6 +1342,7 @@ int security_file_permission(struct file *file, int mask) return fsnotify_perm(file, mask); }