wok-6.x diff linux-libre/stuff/aufs2-standalone.patch @ rev 19252

Up cookutils (802).
author Aleksej Bobylev <al.bobylev@gmail.com>
date Thu Jun 30 22:26:22 2016 +0300 (2016-06-30)
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/linux-libre/stuff/aufs2-standalone.patch	Thu Jun 30 22:26:22 2016 +0300
     1.3 @@ -0,0 +1,289 @@
     1.4 +aufs2.1 standalone patch for linux-2.6.37
     1.5 +
     1.6 +diff --git a/fs/file_table.c b/fs/file_table.c
     1.7 +index c3dee38..f529e4d 100644
     1.8 +--- a/fs/file_table.c
     1.9 ++++ b/fs/file_table.c
    1.10 +@@ -393,6 +393,8 @@ void file_sb_list_del(struct file *file)
    1.11 + 	}
    1.12 + }
    1.13 + 
    1.14 ++EXPORT_SYMBOL(file_sb_list_del);
    1.15 ++
    1.16 + #ifdef CONFIG_SMP
    1.17 + 
    1.18 + /*
    1.19 +diff --git a/fs/inode.c b/fs/inode.c
    1.20 +index ae2727a..2c8071a 100644
    1.21 +--- a/fs/inode.c
    1.22 ++++ b/fs/inode.c
    1.23 +@@ -82,6 +82,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
    1.24 +  * the i_state of an inode while it is in use..
    1.25 +  */
    1.26 + DEFINE_SPINLOCK(inode_lock);
    1.27 ++EXPORT_SYMBOL(inode_lock);
    1.28 + 
    1.29 + /*
    1.30 +  * iprune_sem provides exclusion between the kswapd or try_to_free_pages
    1.31 +diff --git a/fs/namei.c b/fs/namei.c
    1.32 +index a8c583f..b020c45 100644
    1.33 +--- a/fs/namei.c
    1.34 ++++ b/fs/namei.c
    1.35 +@@ -347,6 +347,7 @@ int deny_write_access(struct file * file)
    1.36 + 
    1.37 + 	return 0;
    1.38 + }
    1.39 ++EXPORT_SYMBOL(deny_write_access);
    1.40 + 
    1.41 + /**
    1.42 +  * path_get - get a reference to a path
    1.43 +@@ -1165,6 +1166,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
    1.44 + {
    1.45 + 	return __lookup_hash(&nd->last, nd->path.dentry, nd);
    1.46 + }
    1.47 ++EXPORT_SYMBOL(lookup_hash);
    1.48 + 
    1.49 + int __lookup_one_len(const char *name, struct qstr *this,
    1.50 + 		struct dentry *base, int len)
    1.51 +@@ -1187,6 +1189,7 @@ int __lookup_one_len(const char *name, struct qstr *this,
    1.52 + 	this->hash = end_name_hash(hash);
    1.53 + 	return 0;
    1.54 + }
    1.55 ++EXPORT_SYMBOL(__lookup_one_len);
    1.56 + 
    1.57 + /**
    1.58 +  * lookup_one_len - filesystem helper to lookup single pathname component
    1.59 +diff --git a/fs/namespace.c b/fs/namespace.c
    1.60 +index 3dbfc07..3998762 100644
    1.61 +--- a/fs/namespace.c
    1.62 ++++ b/fs/namespace.c
    1.63 +@@ -1321,6 +1321,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
    1.64 + 	}
    1.65 + 	return 0;
    1.66 + }
    1.67 ++EXPORT_SYMBOL(iterate_mounts);
    1.68 + 
    1.69 + static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end)
    1.70 + {
    1.71 +diff --git a/fs/notify/group.c b/fs/notify/group.c
    1.72 +index d309f38..f0e9568 100644
    1.73 +--- a/fs/notify/group.c
    1.74 ++++ b/fs/notify/group.c
    1.75 +@@ -22,6 +22,7 @@
    1.76 + #include <linux/srcu.h>
    1.77 + #include <linux/rculist.h>
    1.78 + #include <linux/wait.h>
    1.79 ++#include <linux/module.h>
    1.80 + 
    1.81 + #include <linux/fsnotify_backend.h>
    1.82 + #include "fsnotify.h"
    1.83 +@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
    1.84 + 	if (atomic_dec_and_test(&group->refcnt))
    1.85 + 		fsnotify_destroy_group(group);
    1.86 + }
    1.87 ++EXPORT_SYMBOL(fsnotify_put_group);
    1.88 + 
    1.89 + /*
    1.90 +  * Create a new fsnotify_group and hold a reference for the group returned.
    1.91 +@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
    1.92 + 
    1.93 + 	return group;
    1.94 + }
    1.95 ++EXPORT_SYMBOL(fsnotify_alloc_group);
    1.96 +diff --git a/fs/notify/mark.c b/fs/notify/mark.c
    1.97 +index 325185e..adede09 100644
    1.98 +--- a/fs/notify/mark.c
    1.99 ++++ b/fs/notify/mark.c
   1.100 +@@ -113,6 +113,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
   1.101 + 	if (atomic_dec_and_test(&mark->refcnt))
   1.102 + 		mark->free_mark(mark);
   1.103 + }
   1.104 ++EXPORT_SYMBOL(fsnotify_put_mark);
   1.105 + 
   1.106 + /*
   1.107 +  * Any time a mark is getting freed we end up here.
   1.108 +@@ -190,6 +191,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
   1.109 + 	if (unlikely(atomic_dec_and_test(&group->num_marks)))
   1.110 + 		fsnotify_final_destroy_group(group);
   1.111 + }
   1.112 ++EXPORT_SYMBOL(fsnotify_destroy_mark);
   1.113 + 
   1.114 + void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
   1.115 + {
   1.116 +@@ -277,6 +279,7 @@ err:
   1.117 + 
   1.118 + 	return ret;
   1.119 + }
   1.120 ++EXPORT_SYMBOL(fsnotify_add_mark);
   1.121 + 
   1.122 + /*
   1.123 +  * clear any marks in a group in which mark->flags & flags is true
   1.124 +@@ -332,6 +335,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
   1.125 + 	atomic_set(&mark->refcnt, 1);
   1.126 + 	mark->free_mark = free_mark;
   1.127 + }
   1.128 ++EXPORT_SYMBOL(fsnotify_init_mark);
   1.129 + 
   1.130 + static int fsnotify_mark_destroy(void *ignored)
   1.131 + {
   1.132 +diff --git a/fs/open.c b/fs/open.c
   1.133 +index 4197b9e..912817a 100644
   1.134 +--- a/fs/open.c
   1.135 ++++ b/fs/open.c
   1.136 +@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
   1.137 + 	mutex_unlock(&dentry->d_inode->i_mutex);
   1.138 + 	return ret;
   1.139 + }
   1.140 ++EXPORT_SYMBOL(do_truncate);
   1.141 + 
   1.142 + static long do_sys_truncate(const char __user *pathname, loff_t length)
   1.143 + {
   1.144 +diff --git a/fs/splice.c b/fs/splice.c
   1.145 +index ff0ae69..1c9e9b0 100644
   1.146 +--- a/fs/splice.c
   1.147 ++++ b/fs/splice.c
   1.148 +@@ -1116,6 +1116,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
   1.149 + 
   1.150 + 	return splice_write(pipe, out, ppos, len, flags);
   1.151 + }
   1.152 ++EXPORT_SYMBOL(do_splice_from);
   1.153 + 
   1.154 + /*
   1.155 +  * Attempt to initiate a splice from a file to a pipe.
   1.156 +@@ -1142,6 +1143,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
   1.157 + 
   1.158 + 	return splice_read(in, ppos, pipe, len, flags);
   1.159 + }
   1.160 ++EXPORT_SYMBOL(do_splice_to);
   1.161 + 
   1.162 + /**
   1.163 +  * splice_direct_to_actor - splices data directly between two non-pipes
   1.164 +diff --git a/security/commoncap.c b/security/commoncap.c
   1.165 +index 64c2ed9..e58b5d8 100644
   1.166 +--- a/security/commoncap.c
   1.167 ++++ b/security/commoncap.c
   1.168 +@@ -929,3 +929,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
   1.169 + 	}
   1.170 + 	return ret;
   1.171 + }
   1.172 ++EXPORT_SYMBOL(cap_file_mmap);
   1.173 +diff --git a/security/device_cgroup.c b/security/device_cgroup.c
   1.174 +index 8d9c48f..29108aa 100644
   1.175 +--- a/security/device_cgroup.c
   1.176 ++++ b/security/device_cgroup.c
   1.177 +@@ -515,6 +515,7 @@ found:
   1.178 + 
   1.179 + 	return -EPERM;
   1.180 + }
   1.181 ++EXPORT_SYMBOL(devcgroup_inode_permission);
   1.182 + 
   1.183 + int devcgroup_inode_mknod(int mode, dev_t dev)
   1.184 + {
   1.185 +diff --git a/security/security.c b/security/security.c
   1.186 +index 1b798d3..3b7d2ca 100644
   1.187 +--- a/security/security.c
   1.188 ++++ b/security/security.c
   1.189 +@@ -360,6 +360,7 @@ int security_path_mkdir(struct path *dir, struct dentry *dentry, int mode)
   1.190 + 		return 0;
   1.191 + 	return security_ops->path_mkdir(dir, dentry, mode);
   1.192 + }
   1.193 ++EXPORT_SYMBOL(security_path_mkdir);
   1.194 + 
   1.195 + int security_path_rmdir(struct path *dir, struct dentry *dentry)
   1.196 + {
   1.197 +@@ -367,6 +368,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
   1.198 + 		return 0;
   1.199 + 	return security_ops->path_rmdir(dir, dentry);
   1.200 + }
   1.201 ++EXPORT_SYMBOL(security_path_rmdir);
   1.202 + 
   1.203 + int security_path_unlink(struct path *dir, struct dentry *dentry)
   1.204 + {
   1.205 +@@ -374,6 +376,7 @@ int security_path_unlink(struct path *dir, struct dentry *dentry)
   1.206 + 		return 0;
   1.207 + 	return security_ops->path_unlink(dir, dentry);
   1.208 + }
   1.209 ++EXPORT_SYMBOL(security_path_unlink);
   1.210 + 
   1.211 + int security_path_symlink(struct path *dir, struct dentry *dentry,
   1.212 + 			  const char *old_name)
   1.213 +@@ -382,6 +385,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
   1.214 + 		return 0;
   1.215 + 	return security_ops->path_symlink(dir, dentry, old_name);
   1.216 + }
   1.217 ++EXPORT_SYMBOL(security_path_symlink);
   1.218 + 
   1.219 + int security_path_link(struct dentry *old_dentry, struct path *new_dir,
   1.220 + 		       struct dentry *new_dentry)
   1.221 +@@ -390,6 +394,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
   1.222 + 		return 0;
   1.223 + 	return security_ops->path_link(old_dentry, new_dir, new_dentry);
   1.224 + }
   1.225 ++EXPORT_SYMBOL(security_path_link);
   1.226 + 
   1.227 + int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
   1.228 + 			 struct path *new_dir, struct dentry *new_dentry)
   1.229 +@@ -400,6 +405,7 @@ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
   1.230 + 	return security_ops->path_rename(old_dir, old_dentry, new_dir,
   1.231 + 					 new_dentry);
   1.232 + }
   1.233 ++EXPORT_SYMBOL(security_path_rename);
   1.234 + 
   1.235 + int security_path_truncate(struct path *path)
   1.236 + {
   1.237 +@@ -407,6 +413,7 @@ int security_path_truncate(struct path *path)
   1.238 + 		return 0;
   1.239 + 	return security_ops->path_truncate(path);
   1.240 + }
   1.241 ++EXPORT_SYMBOL(security_path_truncate);
   1.242 + 
   1.243 + int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
   1.244 + 			mode_t mode)
   1.245 +@@ -415,6 +422,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
   1.246 + 		return 0;
   1.247 + 	return security_ops->path_chmod(dentry, mnt, mode);
   1.248 + }
   1.249 ++EXPORT_SYMBOL(security_path_chmod);
   1.250 + 
   1.251 + int security_path_chown(struct path *path, uid_t uid, gid_t gid)
   1.252 + {
   1.253 +@@ -422,6 +430,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
   1.254 + 		return 0;
   1.255 + 	return security_ops->path_chown(path, uid, gid);
   1.256 + }
   1.257 ++EXPORT_SYMBOL(security_path_chown);
   1.258 + 
   1.259 + int security_path_chroot(struct path *path)
   1.260 + {
   1.261 +@@ -498,6 +507,7 @@ int security_inode_readlink(struct dentry *dentry)
   1.262 + 		return 0;
   1.263 + 	return security_ops->inode_readlink(dentry);
   1.264 + }
   1.265 ++EXPORT_SYMBOL(security_inode_readlink);
   1.266 + 
   1.267 + int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
   1.268 + {
   1.269 +@@ -512,6 +522,7 @@ int security_inode_permission(struct inode *inode, int mask)
   1.270 + 		return 0;
   1.271 + 	return security_ops->inode_permission(inode, mask);
   1.272 + }
   1.273 ++EXPORT_SYMBOL(security_inode_permission);
   1.274 + 
   1.275 + int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
   1.276 + {
   1.277 +@@ -611,6 +622,7 @@ int security_file_permission(struct file *file, int mask)
   1.278 + 
   1.279 + 	return fsnotify_perm(file, mask);
   1.280 + }
   1.281 ++EXPORT_SYMBOL(security_file_permission);
   1.282 + 
   1.283 + int security_file_alloc(struct file *file)
   1.284 + {
   1.285 +@@ -638,6 +650,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
   1.286 + 		return ret;
   1.287 + 	return ima_file_mmap(file, prot);
   1.288 + }
   1.289 ++EXPORT_SYMBOL(security_file_mmap);
   1.290 + 
   1.291 + int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
   1.292 + 			    unsigned long prot)