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