261 lines
7.9 KiB
Diff
261 lines
7.9 KiB
Diff
SPDX-License-Identifier: GPL-2.0
|
|
aufs6.12 standalone patch
|
|
|
|
diff --git a/fs/dcache.c b/fs/dcache.c
|
|
index 1ab11cad60e8c..3a01c42c6639e 100644
|
|
--- a/fs/dcache.c
|
|
+++ b/fs/dcache.c
|
|
@@ -1333,6 +1333,7 @@ void d_walk(struct dentry *parent, void *data,
|
|
seq = 1;
|
|
goto again;
|
|
}
|
|
+EXPORT_SYMBOL_GPL(d_walk);
|
|
|
|
struct check_mount {
|
|
struct vfsmount *mnt;
|
|
@@ -2899,6 +2900,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
|
|
|
|
write_sequnlock(&rename_lock);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(d_exchange);
|
|
|
|
/**
|
|
* d_ancestor - search for an ancestor
|
|
diff --git a/fs/exec.c b/fs/exec.c
|
|
index 6c53920795c2e..22e10087e34fa 100644
|
|
--- a/fs/exec.c
|
|
+++ b/fs/exec.c
|
|
@@ -114,6 +114,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 --git a/fs/fcntl.c b/fs/fcntl.c
|
|
index 460791727fd9c..75ab59a3df36f 100644
|
|
--- a/fs/fcntl.c
|
|
+++ b/fs/fcntl.c
|
|
@@ -90,6 +90,7 @@ int setfl(int fd, struct file * filp, unsigned int arg)
|
|
out:
|
|
return error;
|
|
}
|
|
+EXPORT_SYMBOL_GPL(setfl);
|
|
|
|
/*
|
|
* 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
|
|
--- 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)
|
|
}
|
|
return ERR_PTR(-ENFILE);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(alloc_empty_file);
|
|
|
|
/*
|
|
* Variant of alloc_empty_file() that doesn't check and modify nr_files.
|
|
diff --git a/fs/namespace.c b/fs/namespace.c
|
|
index d26f5e6d2ca35..3839141eee029 100644
|
|
--- a/fs/namespace.c
|
|
+++ b/fs/namespace.c
|
|
@@ -2194,6 +2194,7 @@ struct vfsmount *collect_mounts(const struct path *path)
|
|
return ERR_CAST(tree);
|
|
return &tree->mnt;
|
|
}
|
|
+EXPORT_SYMBOL_GPL(collect_mounts);
|
|
|
|
static void free_mnt_ns(struct mnt_namespace *);
|
|
static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *, bool);
|
|
@@ -2224,6 +2225,7 @@ void drop_collected_mounts(struct vfsmount *mnt)
|
|
unlock_mount_hash();
|
|
namespace_unlock();
|
|
}
|
|
+EXPORT_SYMBOL_GPL(drop_collected_mounts);
|
|
|
|
bool has_locked_children(struct mount *mnt, struct dentry *dentry)
|
|
{
|
|
@@ -2295,6 +2297,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
|
|
}
|
|
return 0;
|
|
}
|
|
+EXPORT_SYMBOL_GPL(iterate_mounts);
|
|
|
|
static void lock_mnt_tree(struct mount *mnt)
|
|
{
|
|
@@ -5598,6 +5601,7 @@ bool our_mnt(struct vfsmount *mnt)
|
|
{
|
|
return check_mnt(real_mount(mnt));
|
|
}
|
|
+EXPORT_SYMBOL_GPL(our_mnt);
|
|
|
|
bool current_chrooted(void)
|
|
{
|
|
diff --git a/fs/notify/group.c b/fs/notify/group.c
|
|
index 18446b7b0d495..09138e0b8a6a5 100644
|
|
--- a/fs/notify/group.c
|
|
+++ b/fs/notify/group.c
|
|
@@ -100,6 +100,7 @@ void fsnotify_get_group(struct fsnotify_group *group)
|
|
{
|
|
refcount_inc(&group->refcnt);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(fsnotify_get_group);
|
|
|
|
/*
|
|
* Drop a reference to a group. Free it if it's through.
|
|
diff --git a/fs/open.c b/fs/open.c
|
|
index 5da4df2f9b18a..6024098fc6444 100644
|
|
--- a/fs/open.c
|
|
+++ b/fs/open.c
|
|
@@ -66,6 +66,7 @@ int do_truncate(struct mnt_idmap *idmap, struct dentry *dentry,
|
|
inode_unlock(dentry->d_inode);
|
|
return ret;
|
|
}
|
|
+EXPORT_SYMBOL_GPL(do_truncate);
|
|
|
|
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
|
|
--- 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)
|
|
inc_syscr(current);
|
|
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)
|
|
{
|
|
@@ -691,6 +692,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_
|
|
file_end_write(file);
|
|
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 --git a/fs/splice.c b/fs/splice.c
|
|
index b15fd6073b6d3..0fdb86c3813e2 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,
|
|
return warn_unsupported(out, "write");
|
|
return out->f_op->splice_write(pipe, out, ppos, len, flags);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(do_splice_from);
|
|
|
|
/*
|
|
* Indicate to the caller that there was a premature EOF when reading from the
|
|
diff --git a/fs/xattr.c b/fs/xattr.c
|
|
index 05ec7e7d9e87e..e07ffa052dfb4 100644
|
|
--- a/fs/xattr.c
|
|
+++ b/fs/xattr.c
|
|
@@ -405,6 +405,7 @@ vfs_getxattr_alloc(struct mnt_idmap *idmap, 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 --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
|
|
index 34b378cf7a95f..df6a751298b32 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)
|
|
*/
|
|
return lock_classes + class_idx;
|
|
}
|
|
+EXPORT_SYMBOL_GPL(lockdep_hlock_class);
|
|
#define hlock_class(hlock) lockdep_hlock_class(hlock)
|
|
|
|
#ifdef CONFIG_LOCK_STAT
|
|
diff --git a/kernel/task_work.c b/kernel/task_work.c
|
|
index c969f1f26be58..68eb672f425d9 100644
|
|
--- a/kernel/task_work.c
|
|
+++ b/kernel/task_work.c
|
|
@@ -242,3 +242,4 @@ void task_work_run(void)
|
|
} while (work);
|
|
}
|
|
}
|
|
+EXPORT_SYMBOL_GPL(task_work_run);
|
|
diff --git a/security/security.c b/security/security.c
|
|
index c5981e558bc26..bf24ac08acb64 100644
|
|
--- a/security/security.c
|
|
+++ b/security/security.c
|
|
@@ -1909,6 +1909,7 @@ void security_path_post_mknod(struct mnt_idmap *idmap, struct dentry *dentry)
|
|
return;
|
|
call_void_hook(path_post_mknod, idmap, dentry);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(security_path_post_mknod);
|
|
|
|
/**
|
|
* security_path_mkdir() - Check if creating a new directory is allowed
|
|
@@ -1944,6 +1945,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry)
|
|
return 0;
|
|
return call_int_hook(path_rmdir, dir, dentry);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(security_path_rmdir);
|
|
|
|
/**
|
|
* security_path_unlink() - Check if removing a hard link is allowed
|
|
@@ -1979,6 +1981,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry,
|
|
return 0;
|
|
return call_int_hook(path_symlink, dir, dentry, old_name);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(security_path_symlink);
|
|
|
|
/**
|
|
* security_path_link - Check if creating a hard link is allowed
|
|
@@ -1997,6 +2000,7 @@ int security_path_link(struct dentry *old_dentry, const struct path *new_dir,
|
|
return 0;
|
|
return call_int_hook(path_link, old_dentry, new_dir, new_dentry);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(security_path_link);
|
|
|
|
/**
|
|
* security_path_rename() - Check if renaming a file is allowed
|
|
@@ -2058,6 +2062,7 @@ int security_path_chmod(const struct path *path, umode_t mode)
|
|
return 0;
|
|
return call_int_hook(path_chmod, path, mode);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(security_path_chmod);
|
|
|
|
/**
|
|
* security_path_chown() - Check if changing the file's owner/group is allowed
|
|
@@ -2075,6 +2080,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
|
|
return 0;
|
|
return call_int_hook(path_chown, path, uid, gid);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(security_path_chown);
|
|
|
|
/**
|
|
* security_path_chroot() - Check if changing the root directory is allowed
|
|
@@ -2319,6 +2325,7 @@ int security_inode_permission(struct inode *inode, int mask)
|
|
return 0;
|
|
return call_int_hook(inode_permission, inode, mask);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(security_inode_permission);
|
|
|
|
/**
|
|
* security_inode_setattr() - Check if setting file attributes is allowed
|
|
@@ -2840,6 +2847,7 @@ int security_file_permission(struct file *file, int mask)
|
|
{
|
|
return call_int_hook(file_permission, file, mask);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(security_file_permission);
|
|
|
|
/**
|
|
* security_file_alloc() - Allocate and init a file's LSM blob
|
|
@@ -3144,6 +3152,7 @@ int security_file_truncate(struct file *file)
|
|
{
|
|
return call_int_hook(file_truncate, file);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(security_file_truncate);
|
|
|
|
/**
|
|
* security_task_alloc() - Allocate a task's LSM blob
|