Merge pull request #1091 from Rmys/master

cpupowertools-5.6.6
This commit is contained in:
Rmys
2020-04-22 13:32:17 +03:00
committed by GitHub
11 changed files with 41 additions and 83529 deletions
@@ -1,37 +0,0 @@
From 84ecc2f6eb1cb12e6d44818f94fa49b50f06e6ac Mon Sep 17 00:00:00 2001
From: Gen Zhang <blackgod016574@gmail.com>
Date: Thu, 23 May 2019 08:34:52 +0800
Subject: consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c
In function con_insert_unipair(), when allocation for p2 and p1[n]
fails, ENOMEM is returned, but previously allocated p1 is not freed,
remains as leaking memory. Thus we should free p1 as well when this
allocation fails.
Signed-off-by: Gen Zhang <blackgod016574@gmail.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/tty/vt/consolemap.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c
index b28aa0d289f8..79fcc96cc7c0 100644
--- a/drivers/tty/vt/consolemap.c
+++ b/drivers/tty/vt/consolemap.c
@@ -489,7 +489,11 @@ con_insert_unipair(struct uni_pagedir *p, u_short unicode, u_short fontpos)
p2 = p1[n = (unicode >> 6) & 0x1f];
if (!p2) {
p2 = p1[n] = kmalloc_array(64, sizeof(u16), GFP_KERNEL);
- if (!p2) return -ENOMEM;
+ if (!p2) {
+ kfree(p1);
+ p->uni_pgdir[n] = NULL;
+ return -ENOMEM;
+ }
memset(p2, 0xff, 64*sizeof(u16)); /* No glyphs for the characters (yet) */
}
--
cgit 1.2-0.3.lf.el7
@@ -1,312 +0,0 @@
fs/aufs/Kconfig | 2 +-
fs/dcache.c | 2 ++
fs/exec.c | 1 +
fs/fcntl.c | 1 +
fs/file_table.c | 2 ++
fs/inode.c | 1 +
fs/namespace.c | 3 +++
fs/notify/group.c | 1 +
fs/open.c | 1 +
fs/read_write.c | 4 ++++
fs/splice.c | 2 ++
fs/sync.c | 1 +
fs/xattr.c | 1 +
kernel/locking/lockdep.c | 1 +
kernel/task_work.c | 1 +
security/security.c | 8 ++++++++
16 files changed, 31 insertions(+), 1 deletion(-)
diff -Nurp linux-5.5.1-aufs/fs/aufs/Kconfig linux-5.5.1-aufs-mod/fs/aufs/Kconfig
--- linux-5.5.1-aufs/fs/aufs/Kconfig 2020-02-03 16:42:00.909434081 +0200
+++ linux-5.5.1-aufs-mod/fs/aufs/Kconfig 2020-02-03 16:48:04.663055726 +0200
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
config AUFS_FS
- bool "Aufs (Advanced multi layered unification filesystem) support"
+ tristate "Aufs (Advanced multi layered unification filesystem) support"
help
Aufs is a stackable unification filesystem such as Unionfs,
which unifies several directories and provides a merged single
diff -Nurp linux-5.5.1-aufs/fs/dcache.c linux-5.5.1-aufs-mod/fs/dcache.c
--- linux-5.5.1-aufs/fs/dcache.c 2020-02-03 16:42:00.914434309 +0200
+++ linux-5.5.1-aufs-mod/fs/dcache.c 2020-02-03 16:48:20.289769719 +0200
@@ -1371,6 +1371,7 @@ rename_retry:
seq = 1;
goto again;
}
+EXPORT_SYMBOL_GPL(d_walk);
struct check_mount {
struct vfsmount *mnt;
@@ -2916,6 +2917,7 @@ void d_exchange(struct dentry *dentry1,
write_sequnlock(&rename_lock);
}
+EXPORT_SYMBOL_GPL(d_exchange);
/**
* d_ancestor - search for an ancestor
diff -Nurp linux-5.5.1-aufs/fs/exec.c linux-5.5.1-aufs-mod/fs/exec.c
--- linux-5.5.1-aufs/fs/exec.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/fs/exec.c 2020-02-03 16:48:20.289769719 +0200
@@ -109,6 +109,7 @@ bool path_noexec(const struct path *path
return (path->mnt->mnt_flags & MNT_NOEXEC) ||
(path->mnt->mnt_sb->s_iflags & SB_I_NOEXEC);
}
+EXPORT_SYMBOL_GPL(path_noexec);
#ifdef CONFIG_USELIB
/*
diff -Nurp linux-5.5.1-aufs/fs/fcntl.c linux-5.5.1-aufs-mod/fs/fcntl.c
--- linux-5.5.1-aufs/fs/fcntl.c 2020-02-03 16:42:00.914434309 +0200
+++ linux-5.5.1-aufs-mod/fs/fcntl.c 2020-02-03 16:48:20.289769719 +0200
@@ -85,6 +85,7 @@ int setfl(int fd, struct file *filp, uns
out:
return error;
}
+EXPORT_SYMBOL_GPL(setfl);
static void f_modown(struct file *filp, struct pid *pid, enum pid_type type,
int force)
diff -Nurp linux-5.5.1-aufs/fs/file_table.c linux-5.5.1-aufs-mod/fs/file_table.c
--- linux-5.5.1-aufs/fs/file_table.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/fs/file_table.c 2020-02-03 16:48:20.289769719 +0200
@@ -162,6 +162,7 @@ over:
}
return ERR_PTR(-ENFILE);
}
+EXPORT_SYMBOL_GPL(alloc_empty_file);
/*
* Variant of alloc_empty_file() that doesn't check and modify nr_files.
@@ -375,6 +376,7 @@ void __fput_sync(struct file *file)
}
EXPORT_SYMBOL(fput);
+EXPORT_SYMBOL_GPL(__fput_sync);
void __init files_init(void)
{
diff -Nurp linux-5.5.1-aufs/fs/inode.c linux-5.5.1-aufs-mod/fs/inode.c
--- linux-5.5.1-aufs/fs/inode.c 2020-02-03 16:42:00.914434309 +0200
+++ linux-5.5.1-aufs-mod/fs/inode.c 2020-02-03 16:48:20.290769764 +0200
@@ -1689,6 +1689,7 @@ int update_time(struct inode *inode, str
return update_time(inode, time, flags);
}
+EXPORT_SYMBOL_GPL(update_time);
/**
* touch_atime - update the access time
diff -Nurp linux-5.5.1-aufs/fs/namespace.c linux-5.5.1-aufs-mod/fs/namespace.c
--- linux-5.5.1-aufs/fs/namespace.c 2020-02-03 16:42:00.914434309 +0200
+++ linux-5.5.1-aufs-mod/fs/namespace.c 2020-02-03 16:48:20.290769764 +0200
@@ -431,6 +431,7 @@ void __mnt_drop_write(struct vfsmount *m
mnt_dec_writers(real_mount(mnt));
preempt_enable();
}
+EXPORT_SYMBOL_GPL(__mnt_drop_write);
/**
* mnt_drop_write - give up write access to a mount
@@ -781,6 +782,7 @@ int is_current_mnt_ns(struct vfsmount *m
{
return check_mnt(real_mount(mnt));
}
+EXPORT_SYMBOL_GPL(is_current_mnt_ns);
/*
* vfsmount lock must be held for write
@@ -1903,6 +1905,7 @@ int iterate_mounts(int (*f)(struct vfsmo
}
return 0;
}
+EXPORT_SYMBOL_GPL(iterate_mounts);
static void lock_mnt_tree(struct mount *mnt)
{
diff -Nurp linux-5.5.1-aufs/fs/notify/group.c linux-5.5.1-aufs-mod/fs/notify/group.c
--- linux-5.5.1-aufs/fs/notify/group.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/fs/notify/group.c 2020-02-03 16:48:20.290769764 +0200
@@ -99,6 +99,7 @@ void fsnotify_get_group(struct fsnotify_
{
refcount_inc(&group->refcnt);
}
+EXPORT_SYMBOL_GPL(fsnotify_get_group);
/*
* Drop a reference to a group. Free it if it's through.
diff -Nurp linux-5.5.1-aufs/fs/open.c linux-5.5.1-aufs-mod/fs/open.c
--- linux-5.5.1-aufs/fs/open.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/fs/open.c 2020-02-03 16:48:20.290769764 +0200
@@ -65,6 +65,7 @@ int do_truncate(struct dentry *dentry, l
inode_unlock(dentry->d_inode);
return ret;
}
+EXPORT_SYMBOL_GPL(do_truncate);
long vfs_truncate(const struct path *path, loff_t length)
{
diff -Nurp linux-5.5.1-aufs/fs/read_write.c linux-5.5.1-aufs-mod/fs/read_write.c
--- linux-5.5.1-aufs/fs/read_write.c 2020-02-03 16:42:00.915434354 +0200
+++ linux-5.5.1-aufs-mod/fs/read_write.c 2020-02-03 16:48:20.290769764 +0200
@@ -468,6 +468,7 @@ ssize_t vfs_read(struct file *file, char
return ret;
}
+EXPORT_SYMBOL_GPL(vfs_read);
static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
{
@@ -508,6 +509,7 @@ vfs_readf_t vfs_readf(struct file *file)
return new_sync_read;
return ERR_PTR(-ENOSYS); /* doesn't have ->read(|_iter)() op */
}
+EXPORT_SYMBOL_GPL(vfs_readf);
vfs_writef_t vfs_writef(struct file *file)
{
@@ -519,6 +521,7 @@ vfs_writef_t vfs_writef(struct file *fil
return new_sync_write;
return ERR_PTR(-ENOSYS); /* doesn't have ->write(|_iter)() op */
}
+EXPORT_SYMBOL_GPL(vfs_writef);
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
return ret;
}
+EXPORT_SYMBOL_GPL(vfs_write);
/* file_ppos returns &file->f_pos or NULL if file is stream */
static inline loff_t *file_ppos(struct file *file)
diff -Nurp linux-5.5.1-aufs/fs/splice.c linux-5.5.1-aufs-mod/fs/splice.c
--- linux-5.5.1-aufs/fs/splice.c 2020-02-03 16:42:00.915434354 +0200
+++ linux-5.5.1-aufs-mod/fs/splice.c 2020-02-03 16:48:20.290769764 +0200
@@ -862,6 +862,7 @@ long do_splice_from(struct pipe_inode_in
return splice_write(pipe, out, ppos, len, flags);
}
+EXPORT_SYMBOL_GPL(do_splice_from);
/*
* Attempt to initiate a splice from a file to a pipe.
@@ -891,6 +892,7 @@ long do_splice_to(struct file *in, loff_
return splice_read(in, ppos, pipe, len, flags);
}
+EXPORT_SYMBOL_GPL(do_splice_to);
/**
* splice_direct_to_actor - splices data directly between two non-pipes
diff -Nurp linux-5.5.1-aufs/fs/sync.c linux-5.5.1-aufs-mod/fs/sync.c
--- linux-5.5.1-aufs/fs/sync.c 2020-02-03 16:42:00.915434354 +0200
+++ linux-5.5.1-aufs-mod/fs/sync.c 2020-02-03 16:48:20.290769764 +0200
@@ -39,6 +39,7 @@ int __sync_filesystem(struct super_block
sb->s_op->sync_fs(sb, wait);
return __sync_blockdev(sb->s_bdev, wait);
}
+EXPORT_SYMBOL_GPL(__sync_filesystem);
/*
* Write out and wait upon all dirty data associated with this
diff -Nurp linux-5.5.1-aufs/fs/xattr.c linux-5.5.1-aufs-mod/fs/xattr.c
--- linux-5.5.1-aufs/fs/xattr.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/fs/xattr.c 2020-02-03 16:48:20.290769764 +0200
@@ -296,6 +296,7 @@ vfs_getxattr_alloc(struct dentry *dentry
*xattr_value = value;
return error;
}
+EXPORT_SYMBOL_GPL(vfs_getxattr_alloc);
ssize_t
__vfs_getxattr(struct dentry *dentry, struct inode *inode, const char *name,
diff -Nurp linux-5.5.1-aufs/kernel/locking/lockdep.c linux-5.5.1-aufs-mod/kernel/locking/lockdep.c
--- linux-5.5.1-aufs/kernel/locking/lockdep.c 2020-02-03 16:42:00.916434400 +0200
+++ linux-5.5.1-aufs-mod/kernel/locking/lockdep.c 2020-02-03 16:48:20.290769764 +0200
@@ -174,6 +174,7 @@ inline struct lock_class *lockdep_hlock_
*/
return lock_classes + class_idx;
}
+EXPORT_SYMBOL_GPL(lockdep_hlock_class);
#define hlock_class(hlock) lockdep_hlock_class(hlock)
#ifdef CONFIG_LOCK_STAT
diff -Nurp linux-5.5.1-aufs/kernel/task_work.c linux-5.5.1-aufs-mod/kernel/task_work.c
--- linux-5.5.1-aufs/kernel/task_work.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/kernel/task_work.c 2020-02-03 16:48:20.290769764 +0200
@@ -116,3 +116,4 @@ void task_work_run(void)
} while (work);
}
}
+EXPORT_SYMBOL_GPL(task_work_run);
diff -Nurp linux-5.5.1-aufs/security/security.c linux-5.5.1-aufs-mod/security/security.c
--- linux-5.5.1-aufs/security/security.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/security/security.c 2020-02-03 16:48:20.290769764 +0200
@@ -1036,6 +1036,7 @@ int security_path_rmdir(const struct pat
return 0;
return call_int_hook(path_rmdir, 0, dir, dentry);
}
+EXPORT_SYMBOL_GPL(security_path_rmdir);
int security_path_unlink(const struct path *dir, struct dentry *dentry)
{
@@ -1052,6 +1053,7 @@ int security_path_symlink(const struct p
return 0;
return call_int_hook(path_symlink, 0, dir, dentry, old_name);
}
+EXPORT_SYMBOL_GPL(security_path_symlink);
int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
struct dentry *new_dentry)
@@ -1060,6 +1062,7 @@ int security_path_link(struct dentry *ol
return 0;
return call_int_hook(path_link, 0, old_dentry, new_dir, new_dentry);
}
+EXPORT_SYMBOL_GPL(security_path_link);
int security_path_rename(const struct path *old_dir, struct dentry *old_dentry,
const struct path *new_dir, struct dentry *new_dentry,
@@ -1087,6 +1090,7 @@ int security_path_truncate(const struct
return 0;
return call_int_hook(path_truncate, 0, path);
}
+EXPORT_SYMBOL_GPL(security_path_truncate);
int security_path_chmod(const struct path *path, umode_t mode)
{
@@ -1094,6 +1098,7 @@ int security_path_chmod(const struct pat
return 0;
return call_int_hook(path_chmod, 0, path, mode);
}
+EXPORT_SYMBOL_GPL(security_path_chmod);
int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
{
@@ -1101,6 +1106,7 @@ int security_path_chown(const struct pat
return 0;
return call_int_hook(path_chown, 0, path, uid, gid);
}
+EXPORT_SYMBOL_GPL(security_path_chown);
int security_path_chroot(const struct path *path)
{
@@ -1201,6 +1207,7 @@ int security_inode_permission(struct ino
return 0;
return call_int_hook(inode_permission, 0, inode, mask);
}
+EXPORT_SYMBOL_GPL(security_inode_permission);
int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
{
@@ -1378,6 +1385,7 @@ int security_file_permission(struct file
return fsnotify_perm(file, mask);
}
+EXPORT_SYMBOL_GPL(security_file_permission);
int security_file_alloc(struct file *file)
{
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,32 @@
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
Subject: [PATCH 4/4] exfat: Fix discard support
Date: Tue, 17 Mar 2020 23:25:55 +0100
Discard support was always unconditionally disabled. Now it is disabled
only in the case when blk_queue_discard() returns false.
Signed-off-by: Pali Rohár <pali@kernel.org>
---
fs/exfat/super.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/fs/exfat/super.c b/fs/exfat/super.c
index 16ed202ef527..30e914ad17b5 100644
--- a/fs/exfat/super.c
+++ b/fs/exfat/super.c
@@ -531,10 +531,11 @@ static int exfat_fill_super(struct super_block *sb, struct fs_context *fc)
if (opts->discard) {
struct request_queue *q = bdev_get_queue(sb->s_bdev);
- if (!blk_queue_discard(q))
+ if (!blk_queue_discard(q)) {
exfat_msg(sb, KERN_WARNING,
"mounting with \"discard\" option, but the device does not support discard");
- opts->discard = 0;
+ opts->discard = 0;
+ }
}
sb->s_flags |= SB_NODIRATIME;
--
2.20.1
@@ -1,37 +0,0 @@
From 84ecc2f6eb1cb12e6d44818f94fa49b50f06e6ac Mon Sep 17 00:00:00 2001
From: Gen Zhang <blackgod016574@gmail.com>
Date: Thu, 23 May 2019 08:34:52 +0800
Subject: consolemap: Fix a memory leaking bug in drivers/tty/vt/consolemap.c
In function con_insert_unipair(), when allocation for p2 and p1[n]
fails, ENOMEM is returned, but previously allocated p1 is not freed,
remains as leaking memory. Thus we should free p1 as well when this
allocation fails.
Signed-off-by: Gen Zhang <blackgod016574@gmail.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/tty/vt/consolemap.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c
index b28aa0d289f8..79fcc96cc7c0 100644
--- a/drivers/tty/vt/consolemap.c
+++ b/drivers/tty/vt/consolemap.c
@@ -489,7 +489,11 @@ con_insert_unipair(struct uni_pagedir *p, u_short unicode, u_short fontpos)
p2 = p1[n = (unicode >> 6) & 0x1f];
if (!p2) {
p2 = p1[n] = kmalloc_array(64, sizeof(u16), GFP_KERNEL);
- if (!p2) return -ENOMEM;
+ if (!p2) {
+ kfree(p1);
+ p->uni_pgdir[n] = NULL;
+ return -ENOMEM;
+ }
memset(p2, 0xff, 64*sizeof(u16)); /* No glyphs for the characters (yet) */
}
--
cgit 1.2-0.3.lf.el7
@@ -1,312 +0,0 @@
fs/aufs/Kconfig | 2 +-
fs/dcache.c | 2 ++
fs/exec.c | 1 +
fs/fcntl.c | 1 +
fs/file_table.c | 2 ++
fs/inode.c | 1 +
fs/namespace.c | 3 +++
fs/notify/group.c | 1 +
fs/open.c | 1 +
fs/read_write.c | 4 ++++
fs/splice.c | 2 ++
fs/sync.c | 1 +
fs/xattr.c | 1 +
kernel/locking/lockdep.c | 1 +
kernel/task_work.c | 1 +
security/security.c | 8 ++++++++
16 files changed, 31 insertions(+), 1 deletion(-)
diff -Nurp linux-5.5.1-aufs/fs/aufs/Kconfig linux-5.5.1-aufs-mod/fs/aufs/Kconfig
--- linux-5.5.1-aufs/fs/aufs/Kconfig 2020-02-03 16:42:00.909434081 +0200
+++ linux-5.5.1-aufs-mod/fs/aufs/Kconfig 2020-02-03 16:48:04.663055726 +0200
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
config AUFS_FS
- bool "Aufs (Advanced multi layered unification filesystem) support"
+ tristate "Aufs (Advanced multi layered unification filesystem) support"
help
Aufs is a stackable unification filesystem such as Unionfs,
which unifies several directories and provides a merged single
diff -Nurp linux-5.5.1-aufs/fs/dcache.c linux-5.5.1-aufs-mod/fs/dcache.c
--- linux-5.5.1-aufs/fs/dcache.c 2020-02-03 16:42:00.914434309 +0200
+++ linux-5.5.1-aufs-mod/fs/dcache.c 2020-02-03 16:48:20.289769719 +0200
@@ -1371,6 +1371,7 @@ rename_retry:
seq = 1;
goto again;
}
+EXPORT_SYMBOL_GPL(d_walk);
struct check_mount {
struct vfsmount *mnt;
@@ -2916,6 +2917,7 @@ void d_exchange(struct dentry *dentry1,
write_sequnlock(&rename_lock);
}
+EXPORT_SYMBOL_GPL(d_exchange);
/**
* d_ancestor - search for an ancestor
diff -Nurp linux-5.5.1-aufs/fs/exec.c linux-5.5.1-aufs-mod/fs/exec.c
--- linux-5.5.1-aufs/fs/exec.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/fs/exec.c 2020-02-03 16:48:20.289769719 +0200
@@ -109,6 +109,7 @@ bool path_noexec(const struct path *path
return (path->mnt->mnt_flags & MNT_NOEXEC) ||
(path->mnt->mnt_sb->s_iflags & SB_I_NOEXEC);
}
+EXPORT_SYMBOL_GPL(path_noexec);
#ifdef CONFIG_USELIB
/*
diff -Nurp linux-5.5.1-aufs/fs/fcntl.c linux-5.5.1-aufs-mod/fs/fcntl.c
--- linux-5.5.1-aufs/fs/fcntl.c 2020-02-03 16:42:00.914434309 +0200
+++ linux-5.5.1-aufs-mod/fs/fcntl.c 2020-02-03 16:48:20.289769719 +0200
@@ -85,6 +85,7 @@ int setfl(int fd, struct file *filp, uns
out:
return error;
}
+EXPORT_SYMBOL_GPL(setfl);
static void f_modown(struct file *filp, struct pid *pid, enum pid_type type,
int force)
diff -Nurp linux-5.5.1-aufs/fs/file_table.c linux-5.5.1-aufs-mod/fs/file_table.c
--- linux-5.5.1-aufs/fs/file_table.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/fs/file_table.c 2020-02-03 16:48:20.289769719 +0200
@@ -162,6 +162,7 @@ over:
}
return ERR_PTR(-ENFILE);
}
+EXPORT_SYMBOL_GPL(alloc_empty_file);
/*
* Variant of alloc_empty_file() that doesn't check and modify nr_files.
@@ -375,6 +376,7 @@ void __fput_sync(struct file *file)
}
EXPORT_SYMBOL(fput);
+EXPORT_SYMBOL_GPL(__fput_sync);
void __init files_init(void)
{
diff -Nurp linux-5.5.1-aufs/fs/inode.c linux-5.5.1-aufs-mod/fs/inode.c
--- linux-5.5.1-aufs/fs/inode.c 2020-02-03 16:42:00.914434309 +0200
+++ linux-5.5.1-aufs-mod/fs/inode.c 2020-02-03 16:48:20.290769764 +0200
@@ -1689,6 +1689,7 @@ int update_time(struct inode *inode, str
return update_time(inode, time, flags);
}
+EXPORT_SYMBOL_GPL(update_time);
/**
* touch_atime - update the access time
diff -Nurp linux-5.5.1-aufs/fs/namespace.c linux-5.5.1-aufs-mod/fs/namespace.c
--- linux-5.5.1-aufs/fs/namespace.c 2020-02-03 16:42:00.914434309 +0200
+++ linux-5.5.1-aufs-mod/fs/namespace.c 2020-02-03 16:48:20.290769764 +0200
@@ -431,6 +431,7 @@ void __mnt_drop_write(struct vfsmount *m
mnt_dec_writers(real_mount(mnt));
preempt_enable();
}
+EXPORT_SYMBOL_GPL(__mnt_drop_write);
/**
* mnt_drop_write - give up write access to a mount
@@ -781,6 +782,7 @@ int is_current_mnt_ns(struct vfsmount *m
{
return check_mnt(real_mount(mnt));
}
+EXPORT_SYMBOL_GPL(is_current_mnt_ns);
/*
* vfsmount lock must be held for write
@@ -1903,6 +1905,7 @@ int iterate_mounts(int (*f)(struct vfsmo
}
return 0;
}
+EXPORT_SYMBOL_GPL(iterate_mounts);
static void lock_mnt_tree(struct mount *mnt)
{
diff -Nurp linux-5.5.1-aufs/fs/notify/group.c linux-5.5.1-aufs-mod/fs/notify/group.c
--- linux-5.5.1-aufs/fs/notify/group.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/fs/notify/group.c 2020-02-03 16:48:20.290769764 +0200
@@ -99,6 +99,7 @@ void fsnotify_get_group(struct fsnotify_
{
refcount_inc(&group->refcnt);
}
+EXPORT_SYMBOL_GPL(fsnotify_get_group);
/*
* Drop a reference to a group. Free it if it's through.
diff -Nurp linux-5.5.1-aufs/fs/open.c linux-5.5.1-aufs-mod/fs/open.c
--- linux-5.5.1-aufs/fs/open.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/fs/open.c 2020-02-03 16:48:20.290769764 +0200
@@ -65,6 +65,7 @@ int do_truncate(struct dentry *dentry, l
inode_unlock(dentry->d_inode);
return ret;
}
+EXPORT_SYMBOL_GPL(do_truncate);
long vfs_truncate(const struct path *path, loff_t length)
{
diff -Nurp linux-5.5.1-aufs/fs/read_write.c linux-5.5.1-aufs-mod/fs/read_write.c
--- linux-5.5.1-aufs/fs/read_write.c 2020-02-03 16:42:00.915434354 +0200
+++ linux-5.5.1-aufs-mod/fs/read_write.c 2020-02-03 16:48:20.290769764 +0200
@@ -468,6 +468,7 @@ ssize_t vfs_read(struct file *file, char
return ret;
}
+EXPORT_SYMBOL_GPL(vfs_read);
static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
{
@@ -508,6 +509,7 @@ vfs_readf_t vfs_readf(struct file *file)
return new_sync_read;
return ERR_PTR(-ENOSYS); /* doesn't have ->read(|_iter)() op */
}
+EXPORT_SYMBOL_GPL(vfs_readf);
vfs_writef_t vfs_writef(struct file *file)
{
@@ -519,6 +521,7 @@ vfs_writef_t vfs_writef(struct file *fil
return new_sync_write;
return ERR_PTR(-ENOSYS); /* doesn't have ->write(|_iter)() op */
}
+EXPORT_SYMBOL_GPL(vfs_writef);
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
return ret;
}
+EXPORT_SYMBOL_GPL(vfs_write);
/* file_ppos returns &file->f_pos or NULL if file is stream */
static inline loff_t *file_ppos(struct file *file)
diff -Nurp linux-5.5.1-aufs/fs/splice.c linux-5.5.1-aufs-mod/fs/splice.c
--- linux-5.5.1-aufs/fs/splice.c 2020-02-03 16:42:00.915434354 +0200
+++ linux-5.5.1-aufs-mod/fs/splice.c 2020-02-03 16:48:20.290769764 +0200
@@ -862,6 +862,7 @@ long do_splice_from(struct pipe_inode_in
return splice_write(pipe, out, ppos, len, flags);
}
+EXPORT_SYMBOL_GPL(do_splice_from);
/*
* Attempt to initiate a splice from a file to a pipe.
@@ -891,6 +892,7 @@ long do_splice_to(struct file *in, loff_
return splice_read(in, ppos, pipe, len, flags);
}
+EXPORT_SYMBOL_GPL(do_splice_to);
/**
* splice_direct_to_actor - splices data directly between two non-pipes
diff -Nurp linux-5.5.1-aufs/fs/sync.c linux-5.5.1-aufs-mod/fs/sync.c
--- linux-5.5.1-aufs/fs/sync.c 2020-02-03 16:42:00.915434354 +0200
+++ linux-5.5.1-aufs-mod/fs/sync.c 2020-02-03 16:48:20.290769764 +0200
@@ -39,6 +39,7 @@ int __sync_filesystem(struct super_block
sb->s_op->sync_fs(sb, wait);
return __sync_blockdev(sb->s_bdev, wait);
}
+EXPORT_SYMBOL_GPL(__sync_filesystem);
/*
* Write out and wait upon all dirty data associated with this
diff -Nurp linux-5.5.1-aufs/fs/xattr.c linux-5.5.1-aufs-mod/fs/xattr.c
--- linux-5.5.1-aufs/fs/xattr.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/fs/xattr.c 2020-02-03 16:48:20.290769764 +0200
@@ -296,6 +296,7 @@ vfs_getxattr_alloc(struct dentry *dentry
*xattr_value = value;
return error;
}
+EXPORT_SYMBOL_GPL(vfs_getxattr_alloc);
ssize_t
__vfs_getxattr(struct dentry *dentry, struct inode *inode, const char *name,
diff -Nurp linux-5.5.1-aufs/kernel/locking/lockdep.c linux-5.5.1-aufs-mod/kernel/locking/lockdep.c
--- linux-5.5.1-aufs/kernel/locking/lockdep.c 2020-02-03 16:42:00.916434400 +0200
+++ linux-5.5.1-aufs-mod/kernel/locking/lockdep.c 2020-02-03 16:48:20.290769764 +0200
@@ -174,6 +174,7 @@ inline struct lock_class *lockdep_hlock_
*/
return lock_classes + class_idx;
}
+EXPORT_SYMBOL_GPL(lockdep_hlock_class);
#define hlock_class(hlock) lockdep_hlock_class(hlock)
#ifdef CONFIG_LOCK_STAT
diff -Nurp linux-5.5.1-aufs/kernel/task_work.c linux-5.5.1-aufs-mod/kernel/task_work.c
--- linux-5.5.1-aufs/kernel/task_work.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/kernel/task_work.c 2020-02-03 16:48:20.290769764 +0200
@@ -116,3 +116,4 @@ void task_work_run(void)
} while (work);
}
}
+EXPORT_SYMBOL_GPL(task_work_run);
diff -Nurp linux-5.5.1-aufs/security/security.c linux-5.5.1-aufs-mod/security/security.c
--- linux-5.5.1-aufs/security/security.c 2020-01-27 02:23:03.000000000 +0200
+++ linux-5.5.1-aufs-mod/security/security.c 2020-02-03 16:48:20.290769764 +0200
@@ -1036,6 +1036,7 @@ int security_path_rmdir(const struct pat
return 0;
return call_int_hook(path_rmdir, 0, dir, dentry);
}
+EXPORT_SYMBOL_GPL(security_path_rmdir);
int security_path_unlink(const struct path *dir, struct dentry *dentry)
{
@@ -1052,6 +1053,7 @@ int security_path_symlink(const struct p
return 0;
return call_int_hook(path_symlink, 0, dir, dentry, old_name);
}
+EXPORT_SYMBOL_GPL(security_path_symlink);
int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
struct dentry *new_dentry)
@@ -1060,6 +1062,7 @@ int security_path_link(struct dentry *ol
return 0;
return call_int_hook(path_link, 0, old_dentry, new_dir, new_dentry);
}
+EXPORT_SYMBOL_GPL(security_path_link);
int security_path_rename(const struct path *old_dir, struct dentry *old_dentry,
const struct path *new_dir, struct dentry *new_dentry,
@@ -1087,6 +1090,7 @@ int security_path_truncate(const struct
return 0;
return call_int_hook(path_truncate, 0, path);
}
+EXPORT_SYMBOL_GPL(security_path_truncate);
int security_path_chmod(const struct path *path, umode_t mode)
{
@@ -1094,6 +1098,7 @@ int security_path_chmod(const struct pat
return 0;
return call_int_hook(path_chmod, 0, path, mode);
}
+EXPORT_SYMBOL_GPL(security_path_chmod);
int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
{
@@ -1101,6 +1106,7 @@ int security_path_chown(const struct pat
return 0;
return call_int_hook(path_chown, 0, path, uid, gid);
}
+EXPORT_SYMBOL_GPL(security_path_chown);
int security_path_chroot(const struct path *path)
{
@@ -1201,6 +1207,7 @@ int security_inode_permission(struct ino
return 0;
return call_int_hook(inode_permission, 0, inode, mask);
}
+EXPORT_SYMBOL_GPL(security_inode_permission);
int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
{
@@ -1378,6 +1385,7 @@ int security_file_permission(struct file
return fsnotify_perm(file, mask);
}
+EXPORT_SYMBOL_GPL(security_file_permission);
int security_file_alloc(struct file *file)
{
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+9 -1
View File
@@ -18,7 +18,7 @@
</BuildDependencies>
<Patches>
<!-- Linux patches -->
<Patch level="1" compressionType="xz">patches/linux/patch-5.6.4.xz</Patch>
<Patch level="1" compressionType="xz">patches/linux/patch-5.6.6.xz</Patch>
<!-- Mageia Linux patches-->
<Patch level="1">patches/mageia/fs-aufs-5.6.patch</Patch>
<Patch level="1">patches/mageia/fs-aufs-5.6-modular.patch</Patch>
@@ -38,6 +38,7 @@
<Patch level="1">patches/mageia/fs-MAINTAINERS-add-exfat-filesystem.patch</Patch>
<Patch level="1">patches/mageia/fs-exfat-update-file-system-parameter-handling.patch</Patch>
<Patch level="1">patches/mageia/fs-exfat-add-module_alias_fs.patch</Patch>
<Patch level="1">patches/mageia/fs-exfat-fix-discard-support.patch</Patch>
<Patch level="1">patches/mageia/CVE-2019-12379.patch</Patch>
</Patches>
</Source>
@@ -66,6 +67,13 @@
</Package>
<History>
<Update release="34">
<Date>2020-04-22</Date>
<Version>5.6.6</Version>
<Comment>Version bump</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="33">
<Date>2020-04-13</Date>
<Version>5.6.4</Version>