Gentoo Archives: gentoo-commits

From: "Justin Lecher (jlec)" <jlec@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-fs/aufs3/files/3_p20121129: aufs3-standalone-3.patch aufs3-base-x-rcN.patch aufs3-base-1.patch aufs3-standalone-0.patch aufs3-base-5.patch aufs3-standalone-5.patch aufs3-base-2.patch aufs3-standalone-2.patch aufs3-standalone-1.patch aufs3-base-3.patch aufs3-standalone-x-rcN.patch aufs3-base-6.patch aufs3-standalone-4.patch aufs3-standalone-6.patch aufs3-base-0.patch aufs3-base-4.patch
Date: Thu, 29 Nov 2012 21:24:47
Message-Id: 20121129212436.56AA820C65@flycatcher.gentoo.org
1 jlec 12/11/29 21:24:36
2
3 Added: aufs3-standalone-3.patch aufs3-base-x-rcN.patch
4 aufs3-base-1.patch aufs3-standalone-0.patch
5 aufs3-base-5.patch aufs3-standalone-5.patch
6 aufs3-base-2.patch aufs3-standalone-2.patch
7 aufs3-standalone-1.patch aufs3-base-3.patch
8 aufs3-standalone-x-rcN.patch aufs3-base-6.patch
9 aufs3-standalone-4.patch aufs3-standalone-6.patch
10 aufs3-base-0.patch aufs3-base-4.patch
11 Log:
12 sys-fs/aufs3: Version BUmp
13
14 (Portage version: 2.2.0_alpha142/cvs/Linux x86_64, signed Manifest commit with key 8009D6F070EB7916)
15
16 Revision Changes Path
17 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-standalone-3.patch
18
19 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-3.patch?rev=1.1&view=markup
20 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-3.patch?rev=1.1&content-type=text/plain
21
22 Index: aufs3-standalone-3.patch
23 ===================================================================
24 aufs3.3 standalone patch
25
26 diff --git a/fs/file_table.c b/fs/file_table.c
27 index 20002e3..6d792ad 100644
28 --- a/fs/file_table.c
29 +++ b/fs/file_table.c
30 @@ -443,6 +443,8 @@ void file_sb_list_del(struct file *file)
31 }
32 }
33
34 +EXPORT_SYMBOL(file_sb_list_del);
35 +
36 #ifdef CONFIG_SMP
37
38 /*
39 diff --git a/fs/inode.c b/fs/inode.c
40 index 83ab215..45242cd 100644
41 --- a/fs/inode.c
42 +++ b/fs/inode.c
43 @@ -66,6 +66,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
44 static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
45
46 __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
47 +EXPORT_SYMBOL(inode_sb_list_lock);
48
49 /*
50 * Empty aops. Can be used for the cases where the user does not
51 diff --git a/fs/namei.c b/fs/namei.c
52 index f2dcf8d..bcccefd 100644
53 --- a/fs/namei.c
54 +++ b/fs/namei.c
55 @@ -1785,6 +1785,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
56 {
57 return __lookup_hash(&nd->last, nd->path.dentry, nd);
58 }
59 +EXPORT_SYMBOL(lookup_hash);
60
61 /**
62 * lookup_one_len - filesystem helper to lookup single pathname component
63 diff --git a/fs/namespace.c b/fs/namespace.c
64 index e608199..38fcc2e 100644
65 --- a/fs/namespace.c
66 +++ b/fs/namespace.c
67 @@ -1339,6 +1339,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
68 }
69 return 0;
70 }
71 +EXPORT_SYMBOL(iterate_mounts);
72
73 static void cleanup_group_ids(struct mount *mnt, struct mount *end)
74 {
75 diff --git a/fs/notify/group.c b/fs/notify/group.c
76 index 63fc294..6f4adca 100644
77 --- a/fs/notify/group.c
78 +++ b/fs/notify/group.c
79 @@ -22,6 +22,7 @@
80 #include <linux/srcu.h>
81 #include <linux/rculist.h>
82 #include <linux/wait.h>
83 +#include <linux/module.h>
84
85 #include <linux/fsnotify_backend.h>
86 #include "fsnotify.h"
87 @@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
88 if (atomic_dec_and_test(&group->refcnt))
89 fsnotify_destroy_group(group);
90 }
91 +EXPORT_SYMBOL(fsnotify_put_group);
92
93 /*
94 * Create a new fsnotify_group and hold a reference for the group returned.
95 @@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
96
97 return group;
98 }
99 +EXPORT_SYMBOL(fsnotify_alloc_group);
100 diff --git a/fs/notify/mark.c b/fs/notify/mark.c
101 index f104d56..54f36db 100644
102 --- a/fs/notify/mark.c
103 +++ b/fs/notify/mark.c
104 @@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
105 if (atomic_dec_and_test(&mark->refcnt))
106 mark->free_mark(mark);
107 }
108 +EXPORT_SYMBOL(fsnotify_put_mark);
109
110 /*
111 * Any time a mark is getting freed we end up here.
112 @@ -191,6 +192,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
113 if (unlikely(atomic_dec_and_test(&group->num_marks)))
114 fsnotify_final_destroy_group(group);
115 }
116 +EXPORT_SYMBOL(fsnotify_destroy_mark);
117
118 void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
119 {
120 @@ -278,6 +280,7 @@ err:
121
122 return ret;
123 }
124 +EXPORT_SYMBOL(fsnotify_add_mark);
125
126 /*
127 * clear any marks in a group in which mark->flags & flags is true
128 @@ -333,6 +336,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
129 atomic_set(&mark->refcnt, 1);
130 mark->free_mark = free_mark;
131 }
132 +EXPORT_SYMBOL(fsnotify_init_mark);
133
134 static int fsnotify_mark_destroy(void *ignored)
135 {
136 diff --git a/fs/open.c b/fs/open.c
137 index 77becc0..f634f02 100644
138 --- a/fs/open.c
139 +++ b/fs/open.c
140 @@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
141 mutex_unlock(&dentry->d_inode->i_mutex);
142 return ret;
143 }
144 +EXPORT_SYMBOL(do_truncate);
145
146 static long do_sys_truncate(const char __user *pathname, loff_t length)
147 {
148 diff --git a/fs/splice.c b/fs/splice.c
149 index c599f73..00303ba 100644
150 --- a/fs/splice.c
151 +++ b/fs/splice.c
152 @@ -1108,6 +1108,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
153
154 return splice_write(pipe, out, ppos, len, flags);
155 }
156 +EXPORT_SYMBOL(do_splice_from);
157
158 /*
159 * Attempt to initiate a splice from a file to a pipe.
160 @@ -1134,6 +1135,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
161
162 return splice_read(in, ppos, pipe, len, flags);
163 }
164 +EXPORT_SYMBOL(do_splice_to);
165
166 /**
167 * splice_direct_to_actor - splices data directly between two non-pipes
168 diff --git a/security/commoncap.c b/security/commoncap.c
169 index 7ce191e..19a95be 100644
170 --- a/security/commoncap.c
171 +++ b/security/commoncap.c
172 @@ -965,3 +965,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
173 }
174 return ret;
175 }
176 +EXPORT_SYMBOL(cap_file_mmap);
177 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
178 index 8b5b5d8..911850c 100644
179 --- a/security/device_cgroup.c
180 +++ b/security/device_cgroup.c
181 @@ -7,6 +7,7 @@
182 #include <linux/device_cgroup.h>
183 #include <linux/cgroup.h>
184 #include <linux/ctype.h>
185 +#include <linux/export.h>
186 #include <linux/list.h>
187 #include <linux/uaccess.h>
188 #include <linux/seq_file.h>
189 @@ -501,6 +502,7 @@ found:
190
191 return -EPERM;
192 }
193 +EXPORT_SYMBOL(__devcgroup_inode_permission);
194
195 int devcgroup_inode_mknod(int mode, dev_t dev)
196 {
197 diff --git a/security/security.c b/security/security.c
198 index d754249..1aa6154 100644
199 --- a/security/security.c
200 +++ b/security/security.c
201 @@ -392,6 +392,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
202 return 0;
203 return security_ops->path_rmdir(dir, dentry);
204 }
205 +EXPORT_SYMBOL(security_path_rmdir);
206
207 int security_path_unlink(struct path *dir, struct dentry *dentry)
208 {
209 @@ -408,6 +409,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
210 return 0;
211 return security_ops->path_symlink(dir, dentry, old_name);
212 }
213 +EXPORT_SYMBOL(security_path_symlink);
214
215 int security_path_link(struct dentry *old_dentry, struct path *new_dir,
216 struct dentry *new_dentry)
217 @@ -416,6 +418,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
218 return 0;
219 return security_ops->path_link(old_dentry, new_dir, new_dentry);
220 }
221 +EXPORT_SYMBOL(security_path_link);
222
223 int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
224 struct path *new_dir, struct dentry *new_dentry)
225 @@ -434,6 +437,7 @@ int security_path_truncate(struct path *path)
226 return 0;
227 return security_ops->path_truncate(path);
228 }
229 +EXPORT_SYMBOL(security_path_truncate);
230
231 int security_path_chmod(struct path *path, umode_t mode)
232 {
233 @@ -441,6 +445,7 @@ int security_path_chmod(struct path *path, umode_t mode)
234 return 0;
235 return security_ops->path_chmod(path, mode);
236 }
237 +EXPORT_SYMBOL(security_path_chmod);
238
239 int security_path_chown(struct path *path, uid_t uid, gid_t gid)
240 {
241 @@ -448,6 +453,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
242 return 0;
243 return security_ops->path_chown(path, uid, gid);
244 }
245 +EXPORT_SYMBOL(security_path_chown);
246
247 int security_path_chroot(struct path *path)
248 {
249 @@ -524,6 +530,7 @@ int security_inode_readlink(struct dentry *dentry)
250 return 0;
251 return security_ops->inode_readlink(dentry);
252 }
253 +EXPORT_SYMBOL(security_inode_readlink);
254
255 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
256 {
257 @@ -538,6 +545,7 @@ int security_inode_permission(struct inode *inode, int mask)
258 return 0;
259 return security_ops->inode_permission(inode, mask);
260 }
261 +EXPORT_SYMBOL(security_inode_permission);
262
263 int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
264 {
265 @@ -653,6 +661,7 @@ int security_file_permission(struct file *file, int mask)
266
267 return fsnotify_perm(file, mask);
268 }
269 +EXPORT_SYMBOL(security_file_permission);
270
271 int security_file_alloc(struct file *file)
272 {
273 @@ -680,6 +689,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
274 return ret;
275 return ima_file_mmap(file, prot);
276 }
277 +EXPORT_SYMBOL(security_file_mmap);
278
279 int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
280 unsigned long prot)
281
282
283
284 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-base-x-rcN.patch
285
286 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-x-rcN.patch?rev=1.1&view=markup
287 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-x-rcN.patch?rev=1.1&content-type=text/plain
288
289 Index: aufs3-base-x-rcN.patch
290 ===================================================================
291 aufs3.x-rcN base patch
292
293 diff --git a/fs/file_table.c b/fs/file_table.c
294 index a72bf9d..dac6792 100644
295 --- a/fs/file_table.c
296 +++ b/fs/file_table.c
297 @@ -36,7 +36,7 @@ struct files_stat_struct files_stat = {
298 .max_files = NR_FILE
299 };
300
301 -DEFINE_STATIC_LGLOCK(files_lglock);
302 +DEFINE_LGLOCK(files_lglock);
303
304 /* SLAB cache for file structures */
305 static struct kmem_cache *filp_cachep __read_mostly;
306 diff --git a/fs/inode.c b/fs/inode.c
307 index b03c719..ee497f9 100644
308 --- a/fs/inode.c
309 +++ b/fs/inode.c
310 @@ -1491,7 +1491,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
311 * This does the actual work of updating an inodes time or version. Must have
312 * had called mnt_want_write() before calling this.
313 */
314 -static int update_time(struct inode *inode, struct timespec *time, int flags)
315 +int update_time(struct inode *inode, struct timespec *time, int flags)
316 {
317 if (inode->i_op->update_time)
318 return inode->i_op->update_time(inode, time, flags);
319 diff --git a/fs/splice.c b/fs/splice.c
320 index 13e5b47..f185c6c 100644
321 --- a/fs/splice.c
322 +++ b/fs/splice.c
323 @@ -1093,8 +1093,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
324 /*
325 * Attempt to initiate a splice from pipe to file.
326 */
327 -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
328 - loff_t *ppos, size_t len, unsigned int flags)
329 +long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
330 + loff_t *ppos, size_t len, unsigned int flags)
331 {
332 ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
333 loff_t *, size_t, unsigned int);
334 @@ -1121,9 +1121,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
335 /*
336 * Attempt to initiate a splice from a file to a pipe.
337 */
338 -static long do_splice_to(struct file *in, loff_t *ppos,
339 - struct pipe_inode_info *pipe, size_t len,
340 - unsigned int flags)
341 +long do_splice_to(struct file *in, loff_t *ppos,
342 + struct pipe_inode_info *pipe, size_t len,
343 + unsigned int flags)
344 {
345 ssize_t (*splice_read)(struct file *, loff_t *,
346 struct pipe_inode_info *, size_t, unsigned int);
347 diff --git a/include/linux/fs.h b/include/linux/fs.h
348 index b33cfc9..963a61b 100644
349 --- a/include/linux/fs.h
350 +++ b/include/linux/fs.h
351 @@ -2558,6 +2558,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
352 extern int inode_newsize_ok(const struct inode *, loff_t offset);
353 extern void setattr_copy(struct inode *inode, const struct iattr *attr);
354
355 +extern int update_time(struct inode *, struct timespec *, int);
356 extern int file_update_time(struct file *file);
357
358 extern int generic_show_options(struct seq_file *m, struct dentry *root);
359 diff --git a/include/linux/splice.h b/include/linux/splice.h
360 index 09a545a..1ac5727 100644
361 --- a/include/linux/splice.h
362 +++ b/include/linux/splice.h
363 @@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
364 extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
365
366 extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
367 +
368 +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
369 + loff_t *ppos, size_t len, unsigned int flags);
370 +extern long do_splice_to(struct file *in, loff_t *ppos,
371 + struct pipe_inode_info *pipe, size_t len,
372 + unsigned int flags);
373 #endif
374
375
376
377 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-base-1.patch
378
379 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-1.patch?rev=1.1&view=markup
380 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-1.patch?rev=1.1&content-type=text/plain
381
382 Index: aufs3-base-1.patch
383 ===================================================================
384 aufs3.1 base patch
385
386 diff --git a/fs/namei.c b/fs/namei.c
387 index 0b3138d..8edad02 100644
388 --- a/fs/namei.c
389 +++ b/fs/namei.c
390 @@ -1748,7 +1748,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
391 * needs parent already locked. Doesn't follow mounts.
392 * SMP-safe.
393 */
394 -static struct dentry *lookup_hash(struct nameidata *nd)
395 +struct dentry *lookup_hash(struct nameidata *nd)
396 {
397 return __lookup_hash(&nd->last, nd->path.dentry, nd);
398 }
399 diff --git a/fs/splice.c b/fs/splice.c
400 index fa2defa..e3569b0 100644
401 --- a/fs/splice.c
402 +++ b/fs/splice.c
403 @@ -1085,8 +1085,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
404 /*
405 * Attempt to initiate a splice from pipe to file.
406 */
407 -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
408 - loff_t *ppos, size_t len, unsigned int flags)
409 +long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
410 + loff_t *ppos, size_t len, unsigned int flags)
411 {
412 ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
413 loff_t *, size_t, unsigned int);
414 @@ -1113,9 +1113,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
415 /*
416 * Attempt to initiate a splice from a file to a pipe.
417 */
418 -static long do_splice_to(struct file *in, loff_t *ppos,
419 - struct pipe_inode_info *pipe, size_t len,
420 - unsigned int flags)
421 +long do_splice_to(struct file *in, loff_t *ppos,
422 + struct pipe_inode_info *pipe, size_t len,
423 + unsigned int flags)
424 {
425 ssize_t (*splice_read)(struct file *, loff_t *,
426 struct pipe_inode_info *, size_t, unsigned int);
427 diff --git a/include/linux/namei.h b/include/linux/namei.h
428 index 409328d..40afdc0 100644
429 --- a/include/linux/namei.h
430 +++ b/include/linux/namei.h
431 @@ -84,6 +84,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
432 extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
433 int (*open)(struct inode *, struct file *));
434
435 +extern struct dentry *lookup_hash(struct nameidata *nd);
436 extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
437
438 extern int follow_down_one(struct path *);
439 diff --git a/include/linux/splice.h b/include/linux/splice.h
440 index 26e5b61..3ffef2f 100644
441 --- a/include/linux/splice.h
442 +++ b/include/linux/splice.h
443 @@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct pipe_inode_info *,
444 extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
445
446 extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
447 +
448 +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
449 + loff_t *ppos, size_t len, unsigned int flags);
450 +extern long do_splice_to(struct file *in, loff_t *ppos,
451 + struct pipe_inode_info *pipe, size_t len,
452 + unsigned int flags);
453 #endif
454
455
456
457 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-standalone-0.patch
458
459 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-0.patch?rev=1.1&view=markup
460 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-0.patch?rev=1.1&content-type=text/plain
461
462 Index: aufs3-standalone-0.patch
463 ===================================================================
464 aufs3.0 standalone patch
465
466 diff --git a/fs/file_table.c b/fs/file_table.c
467 index 01e4c1e..0e800e2 100644
468 --- a/fs/file_table.c
469 +++ b/fs/file_table.c
470 @@ -443,6 +443,8 @@ void file_sb_list_del(struct file *file)
471 }
472 }
473
474 +EXPORT_SYMBOL(file_sb_list_del);
475 +
476 #ifdef CONFIG_SMP
477
478 /*
479 diff --git a/fs/inode.c b/fs/inode.c
480 index 43566d1..4291eae 100644
481 --- a/fs/inode.c
482 +++ b/fs/inode.c
483 @@ -69,6 +69,7 @@ static DEFINE_SPINLOCK(inode_lru_lock);
484
485 __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
486 __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_wb_list_lock);
487 +EXPORT_SYMBOL(inode_sb_list_lock);
488
489 /*
490 * iprune_sem provides exclusion between the icache shrinking and the
491 diff --git a/fs/namei.c b/fs/namei.c
492 index eb4aef1..66d04c6 100644
493 --- a/fs/namei.c
494 +++ b/fs/namei.c
495 @@ -365,6 +365,7 @@ int deny_write_access(struct file * file)
496
497 return 0;
498 }
499 +EXPORT_SYMBOL(deny_write_access);
500
501 /**
502 * path_get - get a reference to a path
503 @@ -1701,6 +1702,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
504 {
505 return __lookup_hash(&nd->last, nd->path.dentry, nd);
506 }
507 +EXPORT_SYMBOL(lookup_hash);
508
509 /**
510 * lookup_one_len - filesystem helper to lookup single pathname component
511 diff --git a/fs/namespace.c b/fs/namespace.c
512 index fe59bd1..7d3843f 100644
513 --- a/fs/namespace.c
514 +++ b/fs/namespace.c
515 @@ -1508,6 +1508,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
516 }
517 return 0;
518 }
519 +EXPORT_SYMBOL(iterate_mounts);
520
521 static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end)
522 {
523 diff --git a/fs/notify/group.c b/fs/notify/group.c
524 index d309f38..f0e9568 100644
525 --- a/fs/notify/group.c
526 +++ b/fs/notify/group.c
527 @@ -22,6 +22,7 @@
528 #include <linux/srcu.h>
529 #include <linux/rculist.h>
530 #include <linux/wait.h>
531 +#include <linux/module.h>
532
533 #include <linux/fsnotify_backend.h>
534 #include "fsnotify.h"
535 @@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
536 if (atomic_dec_and_test(&group->refcnt))
537 fsnotify_destroy_group(group);
538 }
539 +EXPORT_SYMBOL(fsnotify_put_group);
540
541 /*
542 * Create a new fsnotify_group and hold a reference for the group returned.
543 @@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
544
545 return group;
546 }
547 +EXPORT_SYMBOL(fsnotify_alloc_group);
548 diff --git a/fs/notify/mark.c b/fs/notify/mark.c
549 index 252ab1f..2199b9b 100644
550 --- a/fs/notify/mark.c
551 +++ b/fs/notify/mark.c
552 @@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
553 if (atomic_dec_and_test(&mark->refcnt))
554 mark->free_mark(mark);
555 }
556 +EXPORT_SYMBOL(fsnotify_put_mark);
557
558 /*
559 * Any time a mark is getting freed we end up here.
560 @@ -189,6 +190,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
561 if (unlikely(atomic_dec_and_test(&group->num_marks)))
562 fsnotify_final_destroy_group(group);
563 }
564 +EXPORT_SYMBOL(fsnotify_destroy_mark);
565
566 void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
567 {
568 @@ -276,6 +278,7 @@ err:
569
570 return ret;
571 }
572 +EXPORT_SYMBOL(fsnotify_add_mark);
573
574 /*
575 * clear any marks in a group in which mark->flags & flags is true
576 @@ -331,6 +334,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
577 atomic_set(&mark->refcnt, 1);
578 mark->free_mark = free_mark;
579 }
580 +EXPORT_SYMBOL(fsnotify_init_mark);
581
582 static int fsnotify_mark_destroy(void *ignored)
583 {
584 diff --git a/fs/open.c b/fs/open.c
585 index b52cf01..c1b341c 100644
586 --- a/fs/open.c
587 +++ b/fs/open.c
588 @@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
589 mutex_unlock(&dentry->d_inode->i_mutex);
590 return ret;
591 }
592 +EXPORT_SYMBOL(do_truncate);
593
594 static long do_sys_truncate(const char __user *pathname, loff_t length)
595 {
596 diff --git a/fs/splice.c b/fs/splice.c
597 index 19afec6..11f07f86 100644
598 --- a/fs/splice.c
599 +++ b/fs/splice.c
600 @@ -1109,6 +1109,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
601
602 return splice_write(pipe, out, ppos, len, flags);
603 }
604 +EXPORT_SYMBOL(do_splice_from);
605
606 /*
607 * Attempt to initiate a splice from a file to a pipe.
608 @@ -1135,6 +1136,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
609
610 return splice_read(in, ppos, pipe, len, flags);
611 }
612 +EXPORT_SYMBOL(do_splice_to);
613
614 /**
615 * splice_direct_to_actor - splices data directly between two non-pipes
616 diff --git a/security/commoncap.c b/security/commoncap.c
617 index a93b3b7..024282c 100644
618 --- a/security/commoncap.c
619 +++ b/security/commoncap.c
620 @@ -971,3 +971,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
621 }
622 return ret;
623 }
624 +EXPORT_SYMBOL(cap_file_mmap);
625 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
626 index 1be6826..215278c 100644
627 --- a/security/device_cgroup.c
628 +++ b/security/device_cgroup.c
629 @@ -508,6 +508,7 @@ found:
630
631 return -EPERM;
632 }
633 +EXPORT_SYMBOL(__devcgroup_inode_permission);
634
635 int devcgroup_inode_mknod(int mode, dev_t dev)
636 {
637 diff --git a/security/security.c b/security/security.c
638 index 4ba6d4c..9f64bb8 100644
639 --- a/security/security.c
640 +++ b/security/security.c
641 @@ -373,6 +373,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
642 return 0;
643 return security_ops->path_rmdir(dir, dentry);
644 }
645 +EXPORT_SYMBOL(security_path_rmdir);
646
647 int security_path_unlink(struct path *dir, struct dentry *dentry)
648 {
649 @@ -389,6 +390,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
650 return 0;
651 return security_ops->path_symlink(dir, dentry, old_name);
652 }
653 +EXPORT_SYMBOL(security_path_symlink);
654
655 int security_path_link(struct dentry *old_dentry, struct path *new_dir,
656 struct dentry *new_dentry)
657 @@ -397,6 +399,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
658 return 0;
659 return security_ops->path_link(old_dentry, new_dir, new_dentry);
660 }
661 +EXPORT_SYMBOL(security_path_link);
662
663 int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
664 struct path *new_dir, struct dentry *new_dentry)
665 @@ -415,6 +418,7 @@ int security_path_truncate(struct path *path)
666 return 0;
667 return security_ops->path_truncate(path);
668 }
669 +EXPORT_SYMBOL(security_path_truncate);
670
671 int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
672 mode_t mode)
673 @@ -423,6 +427,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
674 return 0;
675 return security_ops->path_chmod(dentry, mnt, mode);
676 }
677 +EXPORT_SYMBOL(security_path_chmod);
678
679 int security_path_chown(struct path *path, uid_t uid, gid_t gid)
680 {
681 @@ -430,6 +435,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
682 return 0;
683 return security_ops->path_chown(path, uid, gid);
684 }
685 +EXPORT_SYMBOL(security_path_chown);
686
687 int security_path_chroot(struct path *path)
688 {
689 @@ -506,6 +512,7 @@ int security_inode_readlink(struct dentry *dentry)
690 return 0;
691 return security_ops->inode_readlink(dentry);
692 }
693 +EXPORT_SYMBOL(security_inode_readlink);
694
695 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
696 {
697 @@ -520,6 +527,7 @@ int security_inode_permission(struct inode *inode, int mask)
698 return 0;
699 return security_ops->inode_permission(inode, mask, 0);
700 }
701 +EXPORT_SYMBOL(security_inode_permission);
702
703 int security_inode_exec_permission(struct inode *inode, unsigned int flags)
704 {
705 @@ -626,6 +634,7 @@ int security_file_permission(struct file *file, int mask)
706
707 return fsnotify_perm(file, mask);
708 }
709 +EXPORT_SYMBOL(security_file_permission);
710
711 int security_file_alloc(struct file *file)
712 {
713 @@ -653,6 +662,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
714 return ret;
715 return ima_file_mmap(file, prot);
716 }
717 +EXPORT_SYMBOL(security_file_mmap);
718
719 int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
720 unsigned long prot)
721
722
723
724 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-base-5.patch
725
726 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-5.patch?rev=1.1&view=markup
727 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-5.patch?rev=1.1&content-type=text/plain
728
729 Index: aufs3-base-5.patch
730 ===================================================================
731 aufs3.5 base patch
732
733 diff --git a/fs/inode.c b/fs/inode.c
734 index c99163b..7f772fd 100644
735 --- a/fs/inode.c
736 +++ b/fs/inode.c
737 @@ -1491,7 +1491,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
738 * This does the actual work of updating an inodes time or version. Must have
739 * had called mnt_want_write() before calling this.
740 */
741 -static int update_time(struct inode *inode, struct timespec *time, int flags)
742 +int update_time(struct inode *inode, struct timespec *time, int flags)
743 {
744 if (inode->i_op->update_time)
745 return inode->i_op->update_time(inode, time, flags);
746 diff --git a/fs/namei.c b/fs/namei.c
747 index 7d69419..18c9782 100644
748 --- a/fs/namei.c
749 +++ b/fs/namei.c
750 @@ -1864,7 +1864,7 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt,
751 * needs parent already locked. Doesn't follow mounts.
752 * SMP-safe.
753 */
754 -static struct dentry *lookup_hash(struct nameidata *nd)
755 +struct dentry *lookup_hash(struct nameidata *nd)
756 {
757 return __lookup_hash(&nd->last, nd->path.dentry, nd);
758 }
759 diff --git a/fs/splice.c b/fs/splice.c
760 index 7bf08fa..e3c40b5 100644
761 --- a/fs/splice.c
762 +++ b/fs/splice.c
763 @@ -1090,8 +1090,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
764 /*
765 * Attempt to initiate a splice from pipe to file.
766 */
767 -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
768 - loff_t *ppos, size_t len, unsigned int flags)
769 +long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
770 + loff_t *ppos, size_t len, unsigned int flags)
771 {
772 ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
773 loff_t *, size_t, unsigned int);
774 @@ -1118,9 +1118,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
775 /*
776 * Attempt to initiate a splice from a file to a pipe.
777 */
778 -static long do_splice_to(struct file *in, loff_t *ppos,
779 - struct pipe_inode_info *pipe, size_t len,
780 - unsigned int flags)
781 +long do_splice_to(struct file *in, loff_t *ppos,
782 + struct pipe_inode_info *pipe, size_t len,
783 + unsigned int flags)
784 {
785 ssize_t (*splice_read)(struct file *, loff_t *,
786 struct pipe_inode_info *, size_t, unsigned int);
787 diff --git a/include/linux/fs.h b/include/linux/fs.h
788 index 17fd887..9c75a47 100644
789 --- a/include/linux/fs.h
790 +++ b/include/linux/fs.h
791 @@ -2591,6 +2591,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
792 extern int inode_newsize_ok(const struct inode *, loff_t offset);
793 extern void setattr_copy(struct inode *inode, const struct iattr *attr);
794
795 +extern int update_time(struct inode *, struct timespec *, int);
796 extern int file_update_time(struct file *file);
797
798 extern int generic_show_options(struct seq_file *m, struct dentry *root);
799 diff --git a/include/linux/namei.h b/include/linux/namei.h
800 index ffc0213..ef35a31 100644
801 --- a/include/linux/namei.h
802 +++ b/include/linux/namei.h
803 @@ -85,6 +85,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
804 extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
805 int (*open)(struct inode *, struct file *));
806
807 +extern struct dentry *lookup_hash(struct nameidata *nd);
808 extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
809
810 extern int follow_down_one(struct path *);
811 diff --git a/include/linux/splice.h b/include/linux/splice.h
812 index 09a545a..1ac5727 100644
813 --- a/include/linux/splice.h
814 +++ b/include/linux/splice.h
815 @@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
816 extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
817
818 extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
819 +
820 +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
821 + loff_t *ppos, size_t len, unsigned int flags);
822 +extern long do_splice_to(struct file *in, loff_t *ppos,
823 + struct pipe_inode_info *pipe, size_t len,
824 + unsigned int flags);
825 #endif
826
827
828
829 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-standalone-5.patch
830
831 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-5.patch?rev=1.1&view=markup
832 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-5.patch?rev=1.1&content-type=text/plain
833
834 Index: aufs3-standalone-5.patch
835 ===================================================================
836 aufs3.5 standalone patch
837
838 diff --git a/fs/file_table.c b/fs/file_table.c
839 index a305d9e..6a768be 100644
840 --- a/fs/file_table.c
841 +++ b/fs/file_table.c
842 @@ -35,6 +35,7 @@ struct files_stat_struct files_stat = {
843 };
844
845 DEFINE_LGLOCK(files_lglock);
846 +EXPORT_SYMBOL(files_lglock);
847
848 /* SLAB cache for file structures */
849 static struct kmem_cache *filp_cachep __read_mostly;
850 @@ -441,6 +442,8 @@ void file_sb_list_del(struct file *file)
851 }
852 }
853
854 +EXPORT_SYMBOL(file_sb_list_del);
855 +
856 #ifdef CONFIG_SMP
857
858 /*
859 diff --git a/fs/inode.c b/fs/inode.c
860 index 7f772fd..e789d2f 100644
861 --- a/fs/inode.c
862 +++ b/fs/inode.c
863 @@ -56,6 +56,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
864 static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
865
866 __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
867 +EXPORT_SYMBOL(inode_sb_list_lock);
868
869 /*
870 * Empty aops. Can be used for the cases where the user does not
871 @@ -1507,6 +1508,7 @@ int update_time(struct inode *inode, struct timespec *time, int flags)
872 mark_inode_dirty_sync(inode);
873 return 0;
874 }
875 +EXPORT_SYMBOL(update_time);
876
877 /**
878 * touch_atime - update the access time
879 diff --git a/fs/namei.c b/fs/namei.c
880 index 18c9782..f09edf3 100644
881 --- a/fs/namei.c
882 +++ b/fs/namei.c
883 @@ -1868,6 +1868,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
884 {
885 return __lookup_hash(&nd->last, nd->path.dentry, nd);
886 }
887 +EXPORT_SYMBOL(lookup_hash);
888
889 /**
890 * lookup_one_len - filesystem helper to lookup single pathname component
891 diff --git a/fs/namespace.c b/fs/namespace.c
892 index 1e4a5fe..06aa768 100644
893 --- a/fs/namespace.c
894 +++ b/fs/namespace.c
895 @@ -50,6 +50,7 @@ EXPORT_SYMBOL_GPL(fs_kobj);
896 * tree or hash is modified or when a vfsmount structure is modified.
897 */
898 DEFINE_BRLOCK(vfsmount_lock);
899 +EXPORT_SYMBOL(vfsmount_lock);
900
901 static inline unsigned long hash(struct vfsmount *mnt, struct dentry *dentry)
902 {
903 @@ -1341,6 +1342,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
904 }
905 return 0;
906 }
907 +EXPORT_SYMBOL(iterate_mounts);
908
909 static void cleanup_group_ids(struct mount *mnt, struct mount *end)
910 {
911 diff --git a/fs/notify/group.c b/fs/notify/group.c
912 index 63fc294..6f4adca 100644
913 --- a/fs/notify/group.c
914 +++ b/fs/notify/group.c
915 @@ -22,6 +22,7 @@
916 #include <linux/srcu.h>
917 #include <linux/rculist.h>
918 #include <linux/wait.h>
919 +#include <linux/module.h>
920
921 #include <linux/fsnotify_backend.h>
922 #include "fsnotify.h"
923 @@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
924 if (atomic_dec_and_test(&group->refcnt))
925 fsnotify_destroy_group(group);
926 }
927 +EXPORT_SYMBOL(fsnotify_put_group);
928
929 /*
930 * Create a new fsnotify_group and hold a reference for the group returned.
931 @@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
932
933 return group;
934 }
935 +EXPORT_SYMBOL(fsnotify_alloc_group);
936 diff --git a/fs/notify/mark.c b/fs/notify/mark.c
937 index f104d56..54f36db 100644
938 --- a/fs/notify/mark.c
939 +++ b/fs/notify/mark.c
940 @@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
941 if (atomic_dec_and_test(&mark->refcnt))
942 mark->free_mark(mark);
943 }
944 +EXPORT_SYMBOL(fsnotify_put_mark);
945
946 /*
947 * Any time a mark is getting freed we end up here.
948 @@ -191,6 +192,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
949 if (unlikely(atomic_dec_and_test(&group->num_marks)))
950 fsnotify_final_destroy_group(group);
951 }
952 +EXPORT_SYMBOL(fsnotify_destroy_mark);
953
954 void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
955 {
956 @@ -278,6 +280,7 @@ err:
957
958 return ret;
959 }
960 +EXPORT_SYMBOL(fsnotify_add_mark);
961
962 /*
963 * clear any marks in a group in which mark->flags & flags is true
964 @@ -333,6 +336,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
965 atomic_set(&mark->refcnt, 1);
966 mark->free_mark = free_mark;
967 }
968 +EXPORT_SYMBOL(fsnotify_init_mark);
969
970 static int fsnotify_mark_destroy(void *ignored)
971 {
972 diff --git a/fs/open.c b/fs/open.c
973 index 1540632..2463289 100644
974 --- a/fs/open.c
975 +++ b/fs/open.c
976 @@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
977 mutex_unlock(&dentry->d_inode->i_mutex);
978 return ret;
979 }
980 +EXPORT_SYMBOL(do_truncate);
981
982 static long do_sys_truncate(const char __user *pathname, loff_t length)
983 {
984 diff --git a/fs/splice.c b/fs/splice.c
985 index e3c40b5..3afc547 100644
986 --- a/fs/splice.c
987 +++ b/fs/splice.c
988 @@ -1114,6 +1114,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
989
990 return splice_write(pipe, out, ppos, len, flags);
991 }
992 +EXPORT_SYMBOL(do_splice_from);
993
994 /*
995 * Attempt to initiate a splice from a file to a pipe.
996 @@ -1140,6 +1141,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
997
998 return splice_read(in, ppos, pipe, len, flags);
999 }
1000 +EXPORT_SYMBOL(do_splice_to);
1001
1002 /**
1003 * splice_direct_to_actor - splices data directly between two non-pipes
1004 diff --git a/security/commoncap.c b/security/commoncap.c
1005 index 6dbae46..9f4f29a 100644
1006 --- a/security/commoncap.c
1007 +++ b/security/commoncap.c
1008 @@ -979,9 +979,11 @@ int cap_mmap_addr(unsigned long addr)
1009 }
1010 return ret;
1011 }
1012 +EXPORT_SYMBOL(cap_mmap_addr);
1013
1014 int cap_mmap_file(struct file *file, unsigned long reqprot,
1015 unsigned long prot, unsigned long flags)
1016 {
1017 return 0;
1018 }
1019 +EXPORT_SYMBOL(cap_mmap_file);
1020 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
1021 index 442204c..e644a1c 100644
1022 --- a/security/device_cgroup.c
1023 +++ b/security/device_cgroup.c
1024 @@ -7,6 +7,7 @@
1025 #include <linux/device_cgroup.h>
1026 #include <linux/cgroup.h>
1027 #include <linux/ctype.h>
1028 +#include <linux/export.h>
1029 #include <linux/list.h>
1030 #include <linux/uaccess.h>
1031 #include <linux/seq_file.h>
1032 @@ -493,6 +494,7 @@ found:
1033
1034 return -EPERM;
1035 }
1036 +EXPORT_SYMBOL(__devcgroup_inode_permission);
1037
1038 int devcgroup_inode_mknod(int mode, dev_t dev)
1039 {
1040 diff --git a/security/security.c b/security/security.c
1041 index 860aeb3..ffb57bf 100644
1042 --- a/security/security.c
1043 +++ b/security/security.c
1044 @@ -384,6 +384,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
1045 return 0;
1046 return security_ops->path_rmdir(dir, dentry);
1047 }
1048 +EXPORT_SYMBOL(security_path_rmdir);
1049
1050 int security_path_unlink(struct path *dir, struct dentry *dentry)
1051 {
1052 @@ -400,6 +401,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
1053 return 0;
1054 return security_ops->path_symlink(dir, dentry, old_name);
1055 }
1056 +EXPORT_SYMBOL(security_path_symlink);
1057
1058 int security_path_link(struct dentry *old_dentry, struct path *new_dir,
1059 struct dentry *new_dentry)
1060 @@ -408,6 +410,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
1061 return 0;
1062 return security_ops->path_link(old_dentry, new_dir, new_dentry);
1063 }
1064 +EXPORT_SYMBOL(security_path_link);
1065
1066 int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
1067 struct path *new_dir, struct dentry *new_dentry)
1068 @@ -426,6 +429,7 @@ int security_path_truncate(struct path *path)
1069 return 0;
1070 return security_ops->path_truncate(path);
1071 }
1072 +EXPORT_SYMBOL(security_path_truncate);
1073
1074 int security_path_chmod(struct path *path, umode_t mode)
1075 {
1076 @@ -433,6 +437,7 @@ int security_path_chmod(struct path *path, umode_t mode)
1077 return 0;
1078 return security_ops->path_chmod(path, mode);
1079 }
1080 +EXPORT_SYMBOL(security_path_chmod);
1081
1082 int security_path_chown(struct path *path, uid_t uid, gid_t gid)
1083 {
1084 @@ -440,6 +445,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
1085 return 0;
1086 return security_ops->path_chown(path, uid, gid);
1087 }
1088 +EXPORT_SYMBOL(security_path_chown);
1089
1090 int security_path_chroot(struct path *path)
1091 {
1092 @@ -516,6 +522,7 @@ int security_inode_readlink(struct dentry *dentry)
1093 return 0;
1094 return security_ops->inode_readlink(dentry);
1095 }
1096 +EXPORT_SYMBOL(security_inode_readlink);
1097
1098 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
1099 {
1100 @@ -530,6 +537,7 @@ int security_inode_permission(struct inode *inode, int mask)
1101 return 0;
1102 return security_ops->inode_permission(inode, mask);
1103 }
1104 +EXPORT_SYMBOL(security_inode_permission);
1105
1106 int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
1107 {
1108 @@ -645,6 +653,7 @@ int security_file_permission(struct file *file, int mask)
1109
1110 return fsnotify_perm(file, mask);
1111 }
1112 +EXPORT_SYMBOL(security_file_permission);
1113
1114 int security_file_alloc(struct file *file)
1115 {
1116 @@ -705,6 +714,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
1117 return ret;
1118 return ima_file_mmap(file, prot);
1119 }
1120 +EXPORT_SYMBOL(security_mmap_file);
1121
1122 int security_mmap_addr(unsigned long addr)
1123 {
1124
1125
1126
1127 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-base-2.patch
1128
1129 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-2.patch?rev=1.1&view=markup
1130 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-2.patch?rev=1.1&content-type=text/plain
1131
1132 Index: aufs3-base-2.patch
1133 ===================================================================
1134 aufs3.2 base patch
1135
1136 diff --git a/fs/namei.c b/fs/namei.c
1137 index 5008f01..4cc94cf 100644
1138 --- a/fs/namei.c
1139 +++ b/fs/namei.c
1140 @@ -1753,7 +1753,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
1141 * needs parent already locked. Doesn't follow mounts.
1142 * SMP-safe.
1143 */
1144 -static struct dentry *lookup_hash(struct nameidata *nd)
1145 +struct dentry *lookup_hash(struct nameidata *nd)
1146 {
1147 return __lookup_hash(&nd->last, nd->path.dentry, nd);
1148 }
1149 diff --git a/fs/splice.c b/fs/splice.c
1150 index fa2defa..e3569b0 100644
1151 --- a/fs/splice.c
1152 +++ b/fs/splice.c
1153 @@ -1085,8 +1085,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
1154 /*
1155 * Attempt to initiate a splice from pipe to file.
1156 */
1157 -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
1158 - loff_t *ppos, size_t len, unsigned int flags)
1159 +long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
1160 + loff_t *ppos, size_t len, unsigned int flags)
1161 {
1162 ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
1163 loff_t *, size_t, unsigned int);
1164 @@ -1113,9 +1113,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
1165 /*
1166 * Attempt to initiate a splice from a file to a pipe.
1167 */
1168 -static long do_splice_to(struct file *in, loff_t *ppos,
1169 - struct pipe_inode_info *pipe, size_t len,
1170 - unsigned int flags)
1171 +long do_splice_to(struct file *in, loff_t *ppos,
1172 + struct pipe_inode_info *pipe, size_t len,
1173 + unsigned int flags)
1174 {
1175 ssize_t (*splice_read)(struct file *, loff_t *,
1176 struct pipe_inode_info *, size_t, unsigned int);
1177 diff --git a/include/linux/namei.h b/include/linux/namei.h
1178 index ffc0213..ef35a31 100644
1179 --- a/include/linux/namei.h
1180 +++ b/include/linux/namei.h
1181 @@ -85,6 +85,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
1182 extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
1183 int (*open)(struct inode *, struct file *));
1184
1185 +extern struct dentry *lookup_hash(struct nameidata *nd);
1186 extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
1187
1188 extern int follow_down_one(struct path *);
1189 diff --git a/include/linux/splice.h b/include/linux/splice.h
1190 index 26e5b61..3ffef2f 100644
1191 --- a/include/linux/splice.h
1192 +++ b/include/linux/splice.h
1193 @@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct pipe_inode_info *,
1194 extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
1195
1196 extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
1197 +
1198 +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
1199 + loff_t *ppos, size_t len, unsigned int flags);
1200 +extern long do_splice_to(struct file *in, loff_t *ppos,
1201 + struct pipe_inode_info *pipe, size_t len,
1202 + unsigned int flags);
1203 #endif
1204
1205
1206
1207 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-standalone-2.patch
1208
1209 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-2.patch?rev=1.1&view=markup
1210 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-2.patch?rev=1.1&content-type=text/plain
1211
1212 Index: aufs3-standalone-2.patch
1213 ===================================================================
1214 aufs3.2 standalone patch
1215
1216 diff --git a/fs/file_table.c b/fs/file_table.c
1217 index c322794..2aad244 100644
1218 --- a/fs/file_table.c
1219 +++ b/fs/file_table.c
1220 @@ -443,6 +443,8 @@ void file_sb_list_del(struct file *file)
1221 }
1222 }
1223
1224 +EXPORT_SYMBOL(file_sb_list_del);
1225 +
1226 #ifdef CONFIG_SMP
1227
1228 /*
1229 diff --git a/fs/inode.c b/fs/inode.c
1230 index ee4e66b..728042b 100644
1231 --- a/fs/inode.c
1232 +++ b/fs/inode.c
1233 @@ -65,6 +65,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
1234 static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
1235
1236 __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
1237 +EXPORT_SYMBOL(inode_sb_list_lock);
1238
1239 /*
1240 * Empty aops. Can be used for the cases where the user does not
1241 diff --git a/fs/namei.c b/fs/namei.c
1242 index 4cc94cf..af19e30 100644
1243 --- a/fs/namei.c
1244 +++ b/fs/namei.c
1245 @@ -1757,6 +1757,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
1246 {
1247 return __lookup_hash(&nd->last, nd->path.dentry, nd);
1248 }
1249 +EXPORT_SYMBOL(lookup_hash);
1250
1251 /**
1252 * lookup_one_len - filesystem helper to lookup single pathname component
1253 diff --git a/fs/namespace.c b/fs/namespace.c
1254 index cfc6d44..173d15a 100644
1255 --- a/fs/namespace.c
1256 +++ b/fs/namespace.c
1257 @@ -1506,6 +1506,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
1258 }
1259 return 0;
1260 }
1261 +EXPORT_SYMBOL(iterate_mounts);
1262
1263 static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end)
1264 {
1265 diff --git a/fs/notify/group.c b/fs/notify/group.c
1266 index 63fc294..6f4adca 100644
1267 --- a/fs/notify/group.c
1268 +++ b/fs/notify/group.c
1269 @@ -22,6 +22,7 @@
1270 #include <linux/srcu.h>
1271 #include <linux/rculist.h>
1272 #include <linux/wait.h>
1273 +#include <linux/module.h>
1274
1275 #include <linux/fsnotify_backend.h>
1276 #include "fsnotify.h"
1277 @@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
1278 if (atomic_dec_and_test(&group->refcnt))
1279 fsnotify_destroy_group(group);
1280 }
1281 +EXPORT_SYMBOL(fsnotify_put_group);
1282
1283 /*
1284 * Create a new fsnotify_group and hold a reference for the group returned.
1285 @@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
1286
1287 return group;
1288 }
1289 +EXPORT_SYMBOL(fsnotify_alloc_group);
1290 diff --git a/fs/notify/mark.c b/fs/notify/mark.c
1291 index e14587d..be6533b 100644
1292 --- a/fs/notify/mark.c
1293 +++ b/fs/notify/mark.c
1294 @@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
1295 if (atomic_dec_and_test(&mark->refcnt))
1296 mark->free_mark(mark);
1297 }
1298 +EXPORT_SYMBOL(fsnotify_put_mark);
1299
1300 /*
1301 * Any time a mark is getting freed we end up here.
1302 @@ -189,6 +190,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
1303 if (unlikely(atomic_dec_and_test(&group->num_marks)))
1304 fsnotify_final_destroy_group(group);
1305 }
1306 +EXPORT_SYMBOL(fsnotify_destroy_mark);
1307
1308 void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
1309 {
1310 @@ -276,6 +278,7 @@ err:
1311
1312 return ret;
1313 }
1314 +EXPORT_SYMBOL(fsnotify_add_mark);
1315
1316 /*
1317 * clear any marks in a group in which mark->flags & flags is true
1318 @@ -331,6 +334,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
1319 atomic_set(&mark->refcnt, 1);
1320 mark->free_mark = free_mark;
1321 }
1322 +EXPORT_SYMBOL(fsnotify_init_mark);
1323
1324 static int fsnotify_mark_destroy(void *ignored)
1325 {
1326 diff --git a/fs/open.c b/fs/open.c
1327 index 22c41b5..33b4033 100644
1328 --- a/fs/open.c
1329 +++ b/fs/open.c
1330 @@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
1331 mutex_unlock(&dentry->d_inode->i_mutex);
1332 return ret;
1333 }
1334 +EXPORT_SYMBOL(do_truncate);
1335
1336 static long do_sys_truncate(const char __user *pathname, loff_t length)
1337 {
1338 diff --git a/fs/splice.c b/fs/splice.c
1339 index e3569b0..9dc07b7 100644
1340 --- a/fs/splice.c
1341 +++ b/fs/splice.c
1342 @@ -1109,6 +1109,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
1343
1344 return splice_write(pipe, out, ppos, len, flags);
1345 }
1346 +EXPORT_SYMBOL(do_splice_from);
1347
1348 /*
1349 * Attempt to initiate a splice from a file to a pipe.
1350 @@ -1135,6 +1136,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
1351
1352 return splice_read(in, ppos, pipe, len, flags);
1353 }
1354 +EXPORT_SYMBOL(do_splice_to);
1355
1356 /**
1357 * splice_direct_to_actor - splices data directly between two non-pipes
1358 diff --git a/security/commoncap.c b/security/commoncap.c
1359 index ee4f848..611fd70 100644
1360 --- a/security/commoncap.c
1361 +++ b/security/commoncap.c
1362 @@ -975,3 +975,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
1363 }
1364 return ret;
1365 }
1366 +EXPORT_SYMBOL(cap_file_mmap);
1367 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
1368 index 4450fbe..bc94175 100644
1369 --- a/security/device_cgroup.c
1370 +++ b/security/device_cgroup.c
1371 @@ -7,6 +7,7 @@
1372 #include <linux/device_cgroup.h>
1373 #include <linux/cgroup.h>
1374 #include <linux/ctype.h>
1375 +#include <linux/export.h>
1376 #include <linux/list.h>
1377 #include <linux/uaccess.h>
1378 #include <linux/seq_file.h>
1379 @@ -500,6 +501,7 @@ found:
1380
1381 return -EPERM;
1382 }
1383 +EXPORT_SYMBOL(__devcgroup_inode_permission);
1384
1385 int devcgroup_inode_mknod(int mode, dev_t dev)
1386 {
1387 diff --git a/security/security.c b/security/security.c
1388 index e2f684a..892000c 100644
1389 --- a/security/security.c
1390 +++ b/security/security.c
1391 @@ -411,6 +411,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
1392 return 0;
1393 return security_ops->path_rmdir(dir, dentry);
1394 }
1395 +EXPORT_SYMBOL(security_path_rmdir);
1396
1397 int security_path_unlink(struct path *dir, struct dentry *dentry)
1398 {
1399 @@ -427,6 +428,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
1400 return 0;
1401 return security_ops->path_symlink(dir, dentry, old_name);
1402 }
1403 +EXPORT_SYMBOL(security_path_symlink);
1404
1405 int security_path_link(struct dentry *old_dentry, struct path *new_dir,
1406 struct dentry *new_dentry)
1407 @@ -435,6 +437,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
1408 return 0;
1409 return security_ops->path_link(old_dentry, new_dir, new_dentry);
1410 }
1411 +EXPORT_SYMBOL(security_path_link);
1412
1413 int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
1414 struct path *new_dir, struct dentry *new_dentry)
1415 @@ -453,6 +456,7 @@ int security_path_truncate(struct path *path)
1416 return 0;
1417 return security_ops->path_truncate(path);
1418 }
1419 +EXPORT_SYMBOL(security_path_truncate);
1420
1421 int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
1422 mode_t mode)
1423 @@ -461,6 +465,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
1424 return 0;
1425 return security_ops->path_chmod(dentry, mnt, mode);
1426 }
1427 +EXPORT_SYMBOL(security_path_chmod);
1428
1429 int security_path_chown(struct path *path, uid_t uid, gid_t gid)
1430 {
1431 @@ -468,6 +473,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
1432 return 0;
1433 return security_ops->path_chown(path, uid, gid);
1434 }
1435 +EXPORT_SYMBOL(security_path_chown);
1436
1437 int security_path_chroot(struct path *path)
1438 {
1439 @@ -544,6 +550,7 @@ int security_inode_readlink(struct dentry *dentry)
1440 return 0;
1441 return security_ops->inode_readlink(dentry);
1442 }
1443 +EXPORT_SYMBOL(security_inode_readlink);
1444
1445 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
1446 {
1447 @@ -558,6 +565,7 @@ int security_inode_permission(struct inode *inode, int mask)
1448 return 0;
1449 return security_ops->inode_permission(inode, mask);
1450 }
1451 +EXPORT_SYMBOL(security_inode_permission);
1452
1453 int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
1454 {
1455 @@ -673,6 +681,7 @@ int security_file_permission(struct file *file, int mask)
1456
1457 return fsnotify_perm(file, mask);
1458 }
1459 +EXPORT_SYMBOL(security_file_permission);
1460
1461 int security_file_alloc(struct file *file)
1462 {
1463 @@ -700,6 +709,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
1464 return ret;
1465 return ima_file_mmap(file, prot);
1466 }
1467 +EXPORT_SYMBOL(security_file_mmap);
1468
1469 int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
1470 unsigned long prot)
1471
1472
1473
1474 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-standalone-1.patch
1475
1476 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-1.patch?rev=1.1&view=markup
1477 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-1.patch?rev=1.1&content-type=text/plain
1478
1479 Index: aufs3-standalone-1.patch
1480 ===================================================================
1481 aufs3.1 standalone patch
1482
1483 diff --git a/fs/file_table.c b/fs/file_table.c
1484 index c322794..2aad244 100644
1485 --- a/fs/file_table.c
1486 +++ b/fs/file_table.c
1487 @@ -443,6 +443,8 @@ void file_sb_list_del(struct file *file)
1488 }
1489 }
1490
1491 +EXPORT_SYMBOL(file_sb_list_del);
1492 +
1493 #ifdef CONFIG_SMP
1494
1495 /*
1496 diff --git a/fs/inode.c b/fs/inode.c
1497 index ec79246..46ac6f9 100644
1498 --- a/fs/inode.c
1499 +++ b/fs/inode.c
1500 @@ -65,6 +65,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
1501 static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
1502
1503 __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
1504 +EXPORT_SYMBOL(inode_sb_list_lock);
1505
1506 /*
1507 * Empty aops. Can be used for the cases where the user does not
1508 diff --git a/fs/namei.c b/fs/namei.c
1509 index 8edad02..50e8718 100644
1510 --- a/fs/namei.c
1511 +++ b/fs/namei.c
1512 @@ -1752,6 +1752,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
1513 {
1514 return __lookup_hash(&nd->last, nd->path.dentry, nd);
1515 }
1516 +EXPORT_SYMBOL(lookup_hash);
1517
1518 /**
1519 * lookup_one_len - filesystem helper to lookup single pathname component
1520 diff --git a/fs/namespace.c b/fs/namespace.c
1521 index b4febb2..598a308 100644
1522 --- a/fs/namespace.c
1523 +++ b/fs/namespace.c
1524 @@ -1508,6 +1508,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
1525 }
1526 return 0;
1527 }
1528 +EXPORT_SYMBOL(iterate_mounts);
1529
1530 static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end)
1531 {
1532 diff --git a/fs/notify/group.c b/fs/notify/group.c
1533 index 63fc294..6f4adca 100644
1534 --- a/fs/notify/group.c
1535 +++ b/fs/notify/group.c
1536 @@ -22,6 +22,7 @@
1537 #include <linux/srcu.h>
1538 #include <linux/rculist.h>
1539 #include <linux/wait.h>
1540 +#include <linux/module.h>
1541
1542 #include <linux/fsnotify_backend.h>
1543 #include "fsnotify.h"
1544 @@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
1545 if (atomic_dec_and_test(&group->refcnt))
1546 fsnotify_destroy_group(group);
1547 }
1548 +EXPORT_SYMBOL(fsnotify_put_group);
1549
1550 /*
1551 * Create a new fsnotify_group and hold a reference for the group returned.
1552 @@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
1553
1554 return group;
1555 }
1556 +EXPORT_SYMBOL(fsnotify_alloc_group);
1557 diff --git a/fs/notify/mark.c b/fs/notify/mark.c
1558 index e14587d..be6533b 100644
1559 --- a/fs/notify/mark.c
1560 +++ b/fs/notify/mark.c
1561 @@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
1562 if (atomic_dec_and_test(&mark->refcnt))
1563 mark->free_mark(mark);
1564 }
1565 +EXPORT_SYMBOL(fsnotify_put_mark);
1566
1567 /*
1568 * Any time a mark is getting freed we end up here.
1569 @@ -189,6 +190,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
1570 if (unlikely(atomic_dec_and_test(&group->num_marks)))
1571 fsnotify_final_destroy_group(group);
1572 }
1573 +EXPORT_SYMBOL(fsnotify_destroy_mark);
1574
1575 void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
1576 {
1577 @@ -276,6 +278,7 @@ err:
1578
1579 return ret;
1580 }
1581 +EXPORT_SYMBOL(fsnotify_add_mark);
1582
1583 /*
1584 * clear any marks in a group in which mark->flags & flags is true
1585 @@ -331,6 +334,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
1586 atomic_set(&mark->refcnt, 1);
1587 mark->free_mark = free_mark;
1588 }
1589 +EXPORT_SYMBOL(fsnotify_init_mark);
1590
1591 static int fsnotify_mark_destroy(void *ignored)
1592 {
1593 diff --git a/fs/open.c b/fs/open.c
1594 index f711921..d742fc0 100644
1595 --- a/fs/open.c
1596 +++ b/fs/open.c
1597 @@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
1598 mutex_unlock(&dentry->d_inode->i_mutex);
1599 return ret;
1600 }
1601 +EXPORT_SYMBOL(do_truncate);
1602
1603 static long do_sys_truncate(const char __user *pathname, loff_t length)
1604 {
1605 diff --git a/fs/splice.c b/fs/splice.c
1606 index e3569b0..9dc07b7 100644
1607 --- a/fs/splice.c
1608 +++ b/fs/splice.c
1609 @@ -1109,6 +1109,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
1610
1611 return splice_write(pipe, out, ppos, len, flags);
1612 }
1613 +EXPORT_SYMBOL(do_splice_from);
1614
1615 /*
1616 * Attempt to initiate a splice from a file to a pipe.
1617 @@ -1135,6 +1136,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
1618
1619 return splice_read(in, ppos, pipe, len, flags);
1620 }
1621 +EXPORT_SYMBOL(do_splice_to);
1622
1623 /**
1624 * splice_direct_to_actor - splices data directly between two non-pipes
1625 diff --git a/security/commoncap.c b/security/commoncap.c
1626 index a93b3b7..024282c 100644
1627 --- a/security/commoncap.c
1628 +++ b/security/commoncap.c
1629 @@ -971,3 +971,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
1630 }
1631 return ret;
1632 }
1633 +EXPORT_SYMBOL(cap_file_mmap);
1634 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
1635 index 4450fbe..2c437e5 100644
1636 --- a/security/device_cgroup.c
1637 +++ b/security/device_cgroup.c
1638 @@ -500,6 +500,7 @@ found:
1639
1640 return -EPERM;
1641 }
1642 +EXPORT_SYMBOL(__devcgroup_inode_permission);
1643
1644 int devcgroup_inode_mknod(int mode, dev_t dev)
1645 {
1646 diff --git a/security/security.c b/security/security.c
1647 index d9e1533..466ee5c 100644
1648 --- a/security/security.c
1649 +++ b/security/security.c
1650 @@ -373,6 +373,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
1651 return 0;
1652 return security_ops->path_rmdir(dir, dentry);
1653 }
1654 +EXPORT_SYMBOL(security_path_rmdir);
1655
1656 int security_path_unlink(struct path *dir, struct dentry *dentry)
1657 {
1658 @@ -389,6 +390,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
1659 return 0;
1660 return security_ops->path_symlink(dir, dentry, old_name);
1661 }
1662 +EXPORT_SYMBOL(security_path_symlink);
1663
1664 int security_path_link(struct dentry *old_dentry, struct path *new_dir,
1665 struct dentry *new_dentry)
1666 @@ -397,6 +399,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
1667 return 0;
1668 return security_ops->path_link(old_dentry, new_dir, new_dentry);
1669 }
1670 +EXPORT_SYMBOL(security_path_link);
1671
1672 int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
1673 struct path *new_dir, struct dentry *new_dentry)
1674 @@ -415,6 +418,7 @@ int security_path_truncate(struct path *path)
1675 return 0;
1676 return security_ops->path_truncate(path);
1677 }
1678 +EXPORT_SYMBOL(security_path_truncate);
1679
1680 int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
1681 mode_t mode)
1682 @@ -423,6 +427,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
1683 return 0;
1684 return security_ops->path_chmod(dentry, mnt, mode);
1685 }
1686 +EXPORT_SYMBOL(security_path_chmod);
1687
1688 int security_path_chown(struct path *path, uid_t uid, gid_t gid)
1689 {
1690 @@ -430,6 +435,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
1691 return 0;
1692 return security_ops->path_chown(path, uid, gid);
1693 }
1694 +EXPORT_SYMBOL(security_path_chown);
1695
1696 int security_path_chroot(struct path *path)
1697 {
1698 @@ -506,6 +512,7 @@ int security_inode_readlink(struct dentry *dentry)
1699 return 0;
1700 return security_ops->inode_readlink(dentry);
1701 }
1702 +EXPORT_SYMBOL(security_inode_readlink);
1703
1704 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
1705 {
1706 @@ -520,6 +527,7 @@ int security_inode_permission(struct inode *inode, int mask)
1707 return 0;
1708 return security_ops->inode_permission(inode, mask);
1709 }
1710 +EXPORT_SYMBOL(security_inode_permission);
1711
1712 int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
1713 {
1714 @@ -619,6 +627,7 @@ int security_file_permission(struct file *file, int mask)
1715
1716 return fsnotify_perm(file, mask);
1717 }
1718 +EXPORT_SYMBOL(security_file_permission);
1719
1720 int security_file_alloc(struct file *file)
1721 {
1722 @@ -646,6 +655,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
1723 return ret;
1724 return ima_file_mmap(file, prot);
1725 }
1726 +EXPORT_SYMBOL(security_file_mmap);
1727
1728 int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
1729 unsigned long prot)
1730
1731
1732
1733 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-base-3.patch
1734
1735 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-3.patch?rev=1.1&view=markup
1736 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-3.patch?rev=1.1&content-type=text/plain
1737
1738 Index: aufs3-base-3.patch
1739 ===================================================================
1740 aufs3.3 base patch
1741
1742 diff --git a/fs/namei.c b/fs/namei.c
1743 index 46ea9cc..f2dcf8d 100644
1744 --- a/fs/namei.c
1745 +++ b/fs/namei.c
1746 @@ -1781,7 +1781,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
1747 * needs parent already locked. Doesn't follow mounts.
1748 * SMP-safe.
1749 */
1750 -static struct dentry *lookup_hash(struct nameidata *nd)
1751 +struct dentry *lookup_hash(struct nameidata *nd)
1752 {
1753 return __lookup_hash(&nd->last, nd->path.dentry, nd);
1754 }
1755 diff --git a/fs/splice.c b/fs/splice.c
1756 index 1ec0493..c599f73 100644
1757 --- a/fs/splice.c
1758 +++ b/fs/splice.c
1759 @@ -1084,8 +1084,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
1760 /*
1761 * Attempt to initiate a splice from pipe to file.
1762 */
1763 -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
1764 - loff_t *ppos, size_t len, unsigned int flags)
1765 +long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
1766 + loff_t *ppos, size_t len, unsigned int flags)
1767 {
1768 ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
1769 loff_t *, size_t, unsigned int);
1770 @@ -1112,9 +1112,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
1771 /*
1772 * Attempt to initiate a splice from a file to a pipe.
1773 */
1774 -static long do_splice_to(struct file *in, loff_t *ppos,
1775 - struct pipe_inode_info *pipe, size_t len,
1776 - unsigned int flags)
1777 +long do_splice_to(struct file *in, loff_t *ppos,
1778 + struct pipe_inode_info *pipe, size_t len,
1779 + unsigned int flags)
1780 {
1781 ssize_t (*splice_read)(struct file *, loff_t *,
1782 struct pipe_inode_info *, size_t, unsigned int);
1783 diff --git a/include/linux/namei.h b/include/linux/namei.h
1784 index ffc0213..ef35a31 100644
1785 --- a/include/linux/namei.h
1786 +++ b/include/linux/namei.h
1787 @@ -85,6 +85,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
1788 extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
1789 int (*open)(struct inode *, struct file *));
1790
1791 +extern struct dentry *lookup_hash(struct nameidata *nd);
1792 extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
1793
1794 extern int follow_down_one(struct path *);
1795 diff --git a/include/linux/splice.h b/include/linux/splice.h
1796 index 26e5b61..3ffef2f 100644
1797 --- a/include/linux/splice.h
1798 +++ b/include/linux/splice.h
1799 @@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct pipe_inode_info *,
1800 extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
1801
1802 extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
1803 +
1804 +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
1805 + loff_t *ppos, size_t len, unsigned int flags);
1806 +extern long do_splice_to(struct file *in, loff_t *ppos,
1807 + struct pipe_inode_info *pipe, size_t len,
1808 + unsigned int flags);
1809 #endif
1810
1811
1812
1813 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-standalone-x-rcN.patch
1814
1815 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-x-rcN.patch?rev=1.1&view=markup
1816 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-x-rcN.patch?rev=1.1&content-type=text/plain
1817
1818 Index: aufs3-standalone-x-rcN.patch
1819 ===================================================================
1820 aufs3.x-rcN standalone patch
1821
1822 diff --git a/fs/file_table.c b/fs/file_table.c
1823 index dac6792..e3f2c15 100644
1824 --- a/fs/file_table.c
1825 +++ b/fs/file_table.c
1826 @@ -37,6 +37,7 @@ struct files_stat_struct files_stat = {
1827 };
1828
1829 DEFINE_LGLOCK(files_lglock);
1830 +EXPORT_SYMBOL(files_lglock);
1831
1832 /* SLAB cache for file structures */
1833 static struct kmem_cache *filp_cachep __read_mostly;
1834 @@ -403,6 +404,8 @@ void file_sb_list_del(struct file *file)
1835 }
1836 }
1837
1838 +EXPORT_SYMBOL(file_sb_list_del);
1839 +
1840 #ifdef CONFIG_SMP
1841
1842 /*
1843 diff --git a/fs/inode.c b/fs/inode.c
1844 index ee497f9..5e7eee7 100644
1845 --- a/fs/inode.c
1846 +++ b/fs/inode.c
1847 @@ -56,6 +56,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
1848 static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
1849
1850 __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
1851 +EXPORT_SYMBOL(inode_sb_list_lock);
1852
1853 /*
1854 * Empty aops. Can be used for the cases where the user does not
1855 @@ -1507,6 +1508,7 @@ int update_time(struct inode *inode, struct timespec *time, int flags)
1856 mark_inode_dirty_sync(inode);
1857 return 0;
1858 }
1859 +EXPORT_SYMBOL(update_time);
1860
1861 /**
1862 * touch_atime - update the access time
1863 diff --git a/fs/namespace.c b/fs/namespace.c
1864 index 2496062..3e66a90 100644
1865 --- a/fs/namespace.c
1866 +++ b/fs/namespace.c
1867 @@ -50,6 +50,7 @@ EXPORT_SYMBOL_GPL(fs_kobj);
1868 * tree or hash is modified or when a vfsmount structure is modified.
1869 */
1870 DEFINE_BRLOCK(vfsmount_lock);
1871 +EXPORT_SYMBOL(vfsmount_lock);
1872
1873 static inline unsigned long hash(struct vfsmount *mnt, struct dentry *dentry)
1874 {
1875 @@ -1401,6 +1402,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
1876 }
1877 return 0;
1878 }
1879 +EXPORT_SYMBOL(iterate_mounts);
1880
1881 static void cleanup_group_ids(struct mount *mnt, struct mount *end)
1882 {
1883 diff --git a/fs/notify/group.c b/fs/notify/group.c
1884 index 63fc294..6f4adca 100644
1885 --- a/fs/notify/group.c
1886 +++ b/fs/notify/group.c
1887 @@ -22,6 +22,7 @@
1888 #include <linux/srcu.h>
1889 #include <linux/rculist.h>
1890 #include <linux/wait.h>
1891 +#include <linux/module.h>
1892
1893 #include <linux/fsnotify_backend.h>
1894 #include "fsnotify.h"
1895 @@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
1896 if (atomic_dec_and_test(&group->refcnt))
1897 fsnotify_destroy_group(group);
1898 }
1899 +EXPORT_SYMBOL(fsnotify_put_group);
1900
1901 /*
1902 * Create a new fsnotify_group and hold a reference for the group returned.
1903 @@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
1904
1905 return group;
1906 }
1907 +EXPORT_SYMBOL(fsnotify_alloc_group);
1908 diff --git a/fs/notify/mark.c b/fs/notify/mark.c
1909 index f104d56..54f36db 100644
1910 --- a/fs/notify/mark.c
1911 +++ b/fs/notify/mark.c
1912 @@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
1913 if (atomic_dec_and_test(&mark->refcnt))
1914 mark->free_mark(mark);
1915 }
1916 +EXPORT_SYMBOL(fsnotify_put_mark);
1917
1918 /*
1919 * Any time a mark is getting freed we end up here.
1920 @@ -191,6 +192,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
1921 if (unlikely(atomic_dec_and_test(&group->num_marks)))
1922 fsnotify_final_destroy_group(group);
1923 }
1924 +EXPORT_SYMBOL(fsnotify_destroy_mark);
1925
1926 void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
1927 {
1928 @@ -278,6 +280,7 @@ err:
1929
1930 return ret;
1931 }
1932 +EXPORT_SYMBOL(fsnotify_add_mark);
1933
1934 /*
1935 * clear any marks in a group in which mark->flags & flags is true
1936 @@ -333,6 +336,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
1937 atomic_set(&mark->refcnt, 1);
1938 mark->free_mark = free_mark;
1939 }
1940 +EXPORT_SYMBOL(fsnotify_init_mark);
1941
1942 static int fsnotify_mark_destroy(void *ignored)
1943 {
1944 diff --git a/fs/open.c b/fs/open.c
1945 index 59071f5..7e4c856 100644
1946 --- a/fs/open.c
1947 +++ b/fs/open.c
1948 @@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
1949 mutex_unlock(&dentry->d_inode->i_mutex);
1950 return ret;
1951 }
1952 +EXPORT_SYMBOL(do_truncate);
1953
1954 static long do_sys_truncate(const char __user *pathname, loff_t length)
1955 {
1956 diff --git a/fs/splice.c b/fs/splice.c
1957 index f185c6c..f3d89da 100644
1958 --- a/fs/splice.c
1959 +++ b/fs/splice.c
1960 @@ -1117,6 +1117,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
1961
1962 return splice_write(pipe, out, ppos, len, flags);
1963 }
1964 +EXPORT_SYMBOL(do_splice_from);
1965
1966 /*
1967 * Attempt to initiate a splice from a file to a pipe.
1968 @@ -1143,6 +1144,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
1969
1970 return splice_read(in, ppos, pipe, len, flags);
1971 }
1972 +EXPORT_SYMBOL(do_splice_to);
1973
1974 /**
1975 * splice_direct_to_actor - splices data directly between two non-pipes
1976 diff --git a/security/commoncap.c b/security/commoncap.c
1977 index 6dbae46..9f4f29a 100644
1978 --- a/security/commoncap.c
1979 +++ b/security/commoncap.c
1980 @@ -979,9 +979,11 @@ int cap_mmap_addr(unsigned long addr)
1981 }
1982 return ret;
1983 }
1984 +EXPORT_SYMBOL(cap_mmap_addr);
1985
1986 int cap_mmap_file(struct file *file, unsigned long reqprot,
1987 unsigned long prot, unsigned long flags)
1988 {
1989 return 0;
1990 }
1991 +EXPORT_SYMBOL(cap_mmap_file);
1992 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
1993 index b08d20c..a90420b 100644
1994 --- a/security/device_cgroup.c
1995 +++ b/security/device_cgroup.c
1996 @@ -7,6 +7,7 @@
1997 #include <linux/device_cgroup.h>
1998 #include <linux/cgroup.h>
1999 #include <linux/ctype.h>
2000 +#include <linux/export.h>
2001 #include <linux/list.h>
2002 #include <linux/uaccess.h>
2003 #include <linux/seq_file.h>
2004 @@ -617,6 +618,7 @@ int __devcgroup_inode_permission(struct inode *inode, int mask)
2005 return __devcgroup_check_permission(type, imajor(inode), iminor(inode),
2006 access);
2007 }
2008 +EXPORT_SYMBOL(__devcgroup_inode_permission);
2009
2010 int devcgroup_inode_mknod(int mode, dev_t dev)
2011 {
2012 diff --git a/security/security.c b/security/security.c
2013 index 8dcd4ae..6efe561 100644
2014 --- a/security/security.c
2015 +++ b/security/security.c
2016 @@ -396,6 +396,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
2017 return 0;
2018 return security_ops->path_rmdir(dir, dentry);
2019 }
2020 +EXPORT_SYMBOL(security_path_rmdir);
2021
2022 int security_path_unlink(struct path *dir, struct dentry *dentry)
2023 {
2024 @@ -412,6 +413,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
2025 return 0;
2026 return security_ops->path_symlink(dir, dentry, old_name);
2027 }
2028 +EXPORT_SYMBOL(security_path_symlink);
2029
2030 int security_path_link(struct dentry *old_dentry, struct path *new_dir,
2031 struct dentry *new_dentry)
2032 @@ -420,6 +422,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
2033 return 0;
2034 return security_ops->path_link(old_dentry, new_dir, new_dentry);
2035 }
2036 +EXPORT_SYMBOL(security_path_link);
2037
2038 int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
2039 struct path *new_dir, struct dentry *new_dentry)
2040 @@ -438,6 +441,7 @@ int security_path_truncate(struct path *path)
2041 return 0;
2042 return security_ops->path_truncate(path);
2043 }
2044 +EXPORT_SYMBOL(security_path_truncate);
2045
2046 int security_path_chmod(struct path *path, umode_t mode)
2047 {
2048 @@ -445,6 +449,7 @@ int security_path_chmod(struct path *path, umode_t mode)
2049 return 0;
2050 return security_ops->path_chmod(path, mode);
2051 }
2052 +EXPORT_SYMBOL(security_path_chmod);
2053
2054 int security_path_chown(struct path *path, kuid_t uid, kgid_t gid)
2055 {
2056 @@ -452,6 +457,7 @@ int security_path_chown(struct path *path, kuid_t uid, kgid_t gid)
2057 return 0;
2058 return security_ops->path_chown(path, uid, gid);
2059 }
2060 +EXPORT_SYMBOL(security_path_chown);
2061
2062 int security_path_chroot(struct path *path)
2063 {
2064 @@ -528,6 +534,7 @@ int security_inode_readlink(struct dentry *dentry)
2065 return 0;
2066 return security_ops->inode_readlink(dentry);
2067 }
2068 +EXPORT_SYMBOL(security_inode_readlink);
2069
2070 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
2071 {
2072 @@ -542,6 +549,7 @@ int security_inode_permission(struct inode *inode, int mask)
2073 return 0;
2074 return security_ops->inode_permission(inode, mask);
2075 }
2076 +EXPORT_SYMBOL(security_inode_permission);
2077
2078 int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
2079 {
2080 @@ -663,6 +671,7 @@ int security_file_permission(struct file *file, int mask)
2081
2082 return fsnotify_perm(file, mask);
2083 }
2084 +EXPORT_SYMBOL(security_file_permission);
2085
2086 int security_file_alloc(struct file *file)
2087 {
2088 @@ -723,6 +732,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
2089 return ret;
2090 return ima_file_mmap(file, prot);
2091 }
2092 +EXPORT_SYMBOL(security_mmap_file);
2093
2094 int security_mmap_addr(unsigned long addr)
2095 {
2096
2097
2098
2099 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-base-6.patch
2100
2101 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-6.patch?rev=1.1&view=markup
2102 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-6.patch?rev=1.1&content-type=text/plain
2103
2104 Index: aufs3-base-6.patch
2105 ===================================================================
2106 aufs3.6 base patch
2107
2108 diff --git a/fs/inode.c b/fs/inode.c
2109 index ac8d904..7b2c8fa 100644
2110 --- a/fs/inode.c
2111 +++ b/fs/inode.c
2112 @@ -1491,7 +1491,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
2113 * This does the actual work of updating an inodes time or version. Must have
2114 * had called mnt_want_write() before calling this.
2115 */
2116 -static int update_time(struct inode *inode, struct timespec *time, int flags)
2117 +int update_time(struct inode *inode, struct timespec *time, int flags)
2118 {
2119 if (inode->i_op->update_time)
2120 return inode->i_op->update_time(inode, time, flags);
2121 diff --git a/fs/splice.c b/fs/splice.c
2122 index 41514dd..663b402 100644
2123 --- a/fs/splice.c
2124 +++ b/fs/splice.c
2125 @@ -1093,8 +1093,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
2126 /*
2127 * Attempt to initiate a splice from pipe to file.
2128 */
2129 -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2130 - loff_t *ppos, size_t len, unsigned int flags)
2131 +long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2132 + loff_t *ppos, size_t len, unsigned int flags)
2133 {
2134 ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
2135 loff_t *, size_t, unsigned int);
2136 @@ -1121,9 +1121,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2137 /*
2138 * Attempt to initiate a splice from a file to a pipe.
2139 */
2140 -static long do_splice_to(struct file *in, loff_t *ppos,
2141 - struct pipe_inode_info *pipe, size_t len,
2142 - unsigned int flags)
2143 +long do_splice_to(struct file *in, loff_t *ppos,
2144 + struct pipe_inode_info *pipe, size_t len,
2145 + unsigned int flags)
2146 {
2147 ssize_t (*splice_read)(struct file *, loff_t *,
2148 struct pipe_inode_info *, size_t, unsigned int);
2149 diff --git a/include/linux/fs.h b/include/linux/fs.h
2150 index aa11047..9116d2e 100644
2151 --- a/include/linux/fs.h
2152 +++ b/include/linux/fs.h
2153 @@ -2741,6 +2741,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
2154 extern int inode_newsize_ok(const struct inode *, loff_t offset);
2155 extern void setattr_copy(struct inode *inode, const struct iattr *attr);
2156
2157 +extern int update_time(struct inode *, struct timespec *, int);
2158 extern int file_update_time(struct file *file);
2159
2160 extern int generic_show_options(struct seq_file *m, struct dentry *root);
2161 diff --git a/include/linux/splice.h b/include/linux/splice.h
2162 index 09a545a..1ac5727 100644
2163 --- a/include/linux/splice.h
2164 +++ b/include/linux/splice.h
2165 @@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
2166 extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
2167
2168 extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
2169 +
2170 +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2171 + loff_t *ppos, size_t len, unsigned int flags);
2172 +extern long do_splice_to(struct file *in, loff_t *ppos,
2173 + struct pipe_inode_info *pipe, size_t len,
2174 + unsigned int flags);
2175 #endif
2176
2177
2178
2179 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-standalone-4.patch
2180
2181 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-4.patch?rev=1.1&view=markup
2182 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-4.patch?rev=1.1&content-type=text/plain
2183
2184 Index: aufs3-standalone-4.patch
2185 ===================================================================
2186 aufs3.4 standalone patch
2187
2188 diff --git a/fs/file_table.c b/fs/file_table.c
2189 index 70f2a0f..146a3d7 100644
2190 --- a/fs/file_table.c
2191 +++ b/fs/file_table.c
2192 @@ -442,6 +442,8 @@ void file_sb_list_del(struct file *file)
2193 }
2194 }
2195
2196 +EXPORT_SYMBOL(file_sb_list_del);
2197 +
2198 #ifdef CONFIG_SMP
2199
2200 /*
2201 diff --git a/fs/inode.c b/fs/inode.c
2202 index 9f4f5fe..bb0f3ba 100644
2203 --- a/fs/inode.c
2204 +++ b/fs/inode.c
2205 @@ -56,6 +56,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
2206 static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
2207
2208 __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
2209 +EXPORT_SYMBOL(inode_sb_list_lock);
2210
2211 /*
2212 * Empty aops. Can be used for the cases where the user does not
2213 diff --git a/fs/namei.c b/fs/namei.c
2214 index 7ff959b..b170167 100644
2215 --- a/fs/namei.c
2216 +++ b/fs/namei.c
2217 @@ -1835,6 +1835,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
2218 {
2219 return __lookup_hash(&nd->last, nd->path.dentry, nd);
2220 }
2221 +EXPORT_SYMBOL(lookup_hash);
2222
2223 /**
2224 * lookup_one_len - filesystem helper to lookup single pathname component
2225 diff --git a/fs/namespace.c b/fs/namespace.c
2226 index e608199..38fcc2e 100644
2227 --- a/fs/namespace.c
2228 +++ b/fs/namespace.c
2229 @@ -1339,6 +1339,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
2230 }
2231 return 0;
2232 }
2233 +EXPORT_SYMBOL(iterate_mounts);
2234
2235 static void cleanup_group_ids(struct mount *mnt, struct mount *end)
2236 {
2237 diff --git a/fs/notify/group.c b/fs/notify/group.c
2238 index 63fc294..6f4adca 100644
2239 --- a/fs/notify/group.c
2240 +++ b/fs/notify/group.c
2241 @@ -22,6 +22,7 @@
2242 #include <linux/srcu.h>
2243 #include <linux/rculist.h>
2244 #include <linux/wait.h>
2245 +#include <linux/module.h>
2246
2247 #include <linux/fsnotify_backend.h>
2248 #include "fsnotify.h"
2249 @@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
2250 if (atomic_dec_and_test(&group->refcnt))
2251 fsnotify_destroy_group(group);
2252 }
2253 +EXPORT_SYMBOL(fsnotify_put_group);
2254
2255 /*
2256 * Create a new fsnotify_group and hold a reference for the group returned.
2257 @@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
2258
2259 return group;
2260 }
2261 +EXPORT_SYMBOL(fsnotify_alloc_group);
2262 diff --git a/fs/notify/mark.c b/fs/notify/mark.c
2263 index f104d56..54f36db 100644
2264 --- a/fs/notify/mark.c
2265 +++ b/fs/notify/mark.c
2266 @@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
2267 if (atomic_dec_and_test(&mark->refcnt))
2268 mark->free_mark(mark);
2269 }
2270 +EXPORT_SYMBOL(fsnotify_put_mark);
2271
2272 /*
2273 * Any time a mark is getting freed we end up here.
2274 @@ -191,6 +192,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
2275 if (unlikely(atomic_dec_and_test(&group->num_marks)))
2276 fsnotify_final_destroy_group(group);
2277 }
2278 +EXPORT_SYMBOL(fsnotify_destroy_mark);
2279
2280 void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
2281 {
2282 @@ -278,6 +280,7 @@ err:
2283
2284 return ret;
2285 }
2286 +EXPORT_SYMBOL(fsnotify_add_mark);
2287
2288 /*
2289 * clear any marks in a group in which mark->flags & flags is true
2290 @@ -333,6 +336,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
2291 atomic_set(&mark->refcnt, 1);
2292 mark->free_mark = free_mark;
2293 }
2294 +EXPORT_SYMBOL(fsnotify_init_mark);
2295
2296 static int fsnotify_mark_destroy(void *ignored)
2297 {
2298 diff --git a/fs/open.c b/fs/open.c
2299 index 5720854..ec59242 100644
2300 --- a/fs/open.c
2301 +++ b/fs/open.c
2302 @@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
2303 mutex_unlock(&dentry->d_inode->i_mutex);
2304 return ret;
2305 }
2306 +EXPORT_SYMBOL(do_truncate);
2307
2308 static long do_sys_truncate(const char __user *pathname, loff_t length)
2309 {
2310 diff --git a/fs/splice.c b/fs/splice.c
2311 index f871233..70f5481 100644
2312 --- a/fs/splice.c
2313 +++ b/fs/splice.c
2314 @@ -1108,6 +1108,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2315
2316 return splice_write(pipe, out, ppos, len, flags);
2317 }
2318 +EXPORT_SYMBOL(do_splice_from);
2319
2320 /*
2321 * Attempt to initiate a splice from a file to a pipe.
2322 @@ -1134,6 +1135,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
2323
2324 return splice_read(in, ppos, pipe, len, flags);
2325 }
2326 +EXPORT_SYMBOL(do_splice_to);
2327
2328 /**
2329 * splice_direct_to_actor - splices data directly between two non-pipes
2330 diff --git a/security/commoncap.c b/security/commoncap.c
2331 index 71a166a..5d63aac 100644
2332 --- a/security/commoncap.c
2333 +++ b/security/commoncap.c
2334 @@ -972,3 +972,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
2335 }
2336 return ret;
2337 }
2338 +EXPORT_SYMBOL(cap_file_mmap);
2339 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
2340 index c43a332..0c37289 100644
2341 --- a/security/device_cgroup.c
2342 +++ b/security/device_cgroup.c
2343 @@ -7,6 +7,7 @@
2344 #include <linux/device_cgroup.h>
2345 #include <linux/cgroup.h>
2346 #include <linux/ctype.h>
2347 +#include <linux/export.h>
2348 #include <linux/list.h>
2349 #include <linux/uaccess.h>
2350 #include <linux/seq_file.h>
2351 @@ -499,6 +500,7 @@ found:
2352
2353 return -EPERM;
2354 }
2355 +EXPORT_SYMBOL(__devcgroup_inode_permission);
2356
2357 int devcgroup_inode_mknod(int mode, dev_t dev)
2358 {
2359 diff --git a/security/security.c b/security/security.c
2360 index bf619ff..60b996a 100644
2361 --- a/security/security.c
2362 +++ b/security/security.c
2363 @@ -380,6 +380,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
2364 return 0;
2365 return security_ops->path_rmdir(dir, dentry);
2366 }
2367 +EXPORT_SYMBOL(security_path_rmdir);
2368
2369 int security_path_unlink(struct path *dir, struct dentry *dentry)
2370 {
2371 @@ -396,6 +397,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
2372 return 0;
2373 return security_ops->path_symlink(dir, dentry, old_name);
2374 }
2375 +EXPORT_SYMBOL(security_path_symlink);
2376
2377 int security_path_link(struct dentry *old_dentry, struct path *new_dir,
2378 struct dentry *new_dentry)
2379 @@ -404,6 +406,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
2380 return 0;
2381 return security_ops->path_link(old_dentry, new_dir, new_dentry);
2382 }
2383 +EXPORT_SYMBOL(security_path_link);
2384
2385 int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
2386 struct path *new_dir, struct dentry *new_dentry)
2387 @@ -422,6 +425,7 @@ int security_path_truncate(struct path *path)
2388 return 0;
2389 return security_ops->path_truncate(path);
2390 }
2391 +EXPORT_SYMBOL(security_path_truncate);
2392
2393 int security_path_chmod(struct path *path, umode_t mode)
2394 {
2395 @@ -429,6 +433,7 @@ int security_path_chmod(struct path *path, umode_t mode)
2396 return 0;
2397 return security_ops->path_chmod(path, mode);
2398 }
2399 +EXPORT_SYMBOL(security_path_chmod);
2400
2401 int security_path_chown(struct path *path, uid_t uid, gid_t gid)
2402 {
2403 @@ -436,6 +441,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
2404 return 0;
2405 return security_ops->path_chown(path, uid, gid);
2406 }
2407 +EXPORT_SYMBOL(security_path_chown);
2408
2409 int security_path_chroot(struct path *path)
2410 {
2411 @@ -512,6 +518,7 @@ int security_inode_readlink(struct dentry *dentry)
2412 return 0;
2413 return security_ops->inode_readlink(dentry);
2414 }
2415 +EXPORT_SYMBOL(security_inode_readlink);
2416
2417 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
2418 {
2419 @@ -526,6 +533,7 @@ int security_inode_permission(struct inode *inode, int mask)
2420 return 0;
2421 return security_ops->inode_permission(inode, mask);
2422 }
2423 +EXPORT_SYMBOL(security_inode_permission);
2424
2425 int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
2426 {
2427 @@ -641,6 +649,7 @@ int security_file_permission(struct file *file, int mask)
2428
2429 return fsnotify_perm(file, mask);
2430 }
2431 +EXPORT_SYMBOL(security_file_permission);
2432
2433 int security_file_alloc(struct file *file)
2434 {
2435 @@ -668,6 +677,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
2436 return ret;
2437 return ima_file_mmap(file, prot);
2438 }
2439 +EXPORT_SYMBOL(security_file_mmap);
2440
2441 int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
2442 unsigned long prot)
2443
2444
2445
2446 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-standalone-6.patch
2447
2448 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-6.patch?rev=1.1&view=markup
2449 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-standalone-6.patch?rev=1.1&content-type=text/plain
2450
2451 Index: aufs3-standalone-6.patch
2452 ===================================================================
2453 aufs3.6 standalone patch
2454
2455 diff --git a/fs/file_table.c b/fs/file_table.c
2456 index 701985e..a9fe741 100644
2457 --- a/fs/file_table.c
2458 +++ b/fs/file_table.c
2459 @@ -37,6 +37,7 @@ struct files_stat_struct files_stat = {
2460 };
2461
2462 DEFINE_LGLOCK(files_lglock);
2463 +EXPORT_SYMBOL(files_lglock);
2464
2465 /* SLAB cache for file structures */
2466 static struct kmem_cache *filp_cachep __read_mostly;
2467 @@ -509,6 +510,8 @@ void file_sb_list_del(struct file *file)
2468 }
2469 }
2470
2471 +EXPORT_SYMBOL(file_sb_list_del);
2472 +
2473 #ifdef CONFIG_SMP
2474
2475 /*
2476 diff --git a/fs/inode.c b/fs/inode.c
2477 index 7b2c8fa..0c4318d 100644
2478 --- a/fs/inode.c
2479 +++ b/fs/inode.c
2480 @@ -56,6 +56,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
2481 static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
2482
2483 __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
2484 +EXPORT_SYMBOL(inode_sb_list_lock);
2485
2486 /*
2487 * Empty aops. Can be used for the cases where the user does not
2488 @@ -1507,6 +1508,7 @@ int update_time(struct inode *inode, struct timespec *time, int flags)
2489 mark_inode_dirty_sync(inode);
2490 return 0;
2491 }
2492 +EXPORT_SYMBOL(update_time);
2493
2494 /**
2495 * touch_atime - update the access time
2496 diff --git a/fs/namespace.c b/fs/namespace.c
2497 index 7bdf790..5b85c4c 100644
2498 --- a/fs/namespace.c
2499 +++ b/fs/namespace.c
2500 @@ -50,6 +50,7 @@ EXPORT_SYMBOL_GPL(fs_kobj);
2501 * tree or hash is modified or when a vfsmount structure is modified.
2502 */
2503 DEFINE_BRLOCK(vfsmount_lock);
2504 +EXPORT_SYMBOL(vfsmount_lock);
2505
2506 static inline unsigned long hash(struct vfsmount *mnt, struct dentry *dentry)
2507 {
2508 @@ -1401,6 +1402,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
2509 }
2510 return 0;
2511 }
2512 +EXPORT_SYMBOL(iterate_mounts);
2513
2514 static void cleanup_group_ids(struct mount *mnt, struct mount *end)
2515 {
2516 diff --git a/fs/notify/group.c b/fs/notify/group.c
2517 index 63fc294..6f4adca 100644
2518 --- a/fs/notify/group.c
2519 +++ b/fs/notify/group.c
2520 @@ -22,6 +22,7 @@
2521 #include <linux/srcu.h>
2522 #include <linux/rculist.h>
2523 #include <linux/wait.h>
2524 +#include <linux/module.h>
2525
2526 #include <linux/fsnotify_backend.h>
2527 #include "fsnotify.h"
2528 @@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
2529 if (atomic_dec_and_test(&group->refcnt))
2530 fsnotify_destroy_group(group);
2531 }
2532 +EXPORT_SYMBOL(fsnotify_put_group);
2533
2534 /*
2535 * Create a new fsnotify_group and hold a reference for the group returned.
2536 @@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
2537
2538 return group;
2539 }
2540 +EXPORT_SYMBOL(fsnotify_alloc_group);
2541 diff --git a/fs/notify/mark.c b/fs/notify/mark.c
2542 index f104d56..54f36db 100644
2543 --- a/fs/notify/mark.c
2544 +++ b/fs/notify/mark.c
2545 @@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
2546 if (atomic_dec_and_test(&mark->refcnt))
2547 mark->free_mark(mark);
2548 }
2549 +EXPORT_SYMBOL(fsnotify_put_mark);
2550
2551 /*
2552 * Any time a mark is getting freed we end up here.
2553 @@ -191,6 +192,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
2554 if (unlikely(atomic_dec_and_test(&group->num_marks)))
2555 fsnotify_final_destroy_group(group);
2556 }
2557 +EXPORT_SYMBOL(fsnotify_destroy_mark);
2558
2559 void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
2560 {
2561 @@ -278,6 +280,7 @@ err:
2562
2563 return ret;
2564 }
2565 +EXPORT_SYMBOL(fsnotify_add_mark);
2566
2567 /*
2568 * clear any marks in a group in which mark->flags & flags is true
2569 @@ -333,6 +336,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
2570 atomic_set(&mark->refcnt, 1);
2571 mark->free_mark = free_mark;
2572 }
2573 +EXPORT_SYMBOL(fsnotify_init_mark);
2574
2575 static int fsnotify_mark_destroy(void *ignored)
2576 {
2577 diff --git a/fs/open.c b/fs/open.c
2578 index e1f2cdb..2804cd6 100644
2579 --- a/fs/open.c
2580 +++ b/fs/open.c
2581 @@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
2582 mutex_unlock(&dentry->d_inode->i_mutex);
2583 return ret;
2584 }
2585 +EXPORT_SYMBOL(do_truncate);
2586
2587 static long do_sys_truncate(const char __user *pathname, loff_t length)
2588 {
2589 diff --git a/fs/splice.c b/fs/splice.c
2590 index 663b402..51e1deb 100644
2591 --- a/fs/splice.c
2592 +++ b/fs/splice.c
2593 @@ -1117,6 +1117,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2594
2595 return splice_write(pipe, out, ppos, len, flags);
2596 }
2597 +EXPORT_SYMBOL(do_splice_from);
2598
2599 /*
2600 * Attempt to initiate a splice from a file to a pipe.
2601 @@ -1143,6 +1144,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
2602
2603 return splice_read(in, ppos, pipe, len, flags);
2604 }
2605 +EXPORT_SYMBOL(do_splice_to);
2606
2607 /**
2608 * splice_direct_to_actor - splices data directly between two non-pipes
2609 diff --git a/security/commoncap.c b/security/commoncap.c
2610 index 6dbae46..9f4f29a 100644
2611 --- a/security/commoncap.c
2612 +++ b/security/commoncap.c
2613 @@ -979,9 +979,11 @@ int cap_mmap_addr(unsigned long addr)
2614 }
2615 return ret;
2616 }
2617 +EXPORT_SYMBOL(cap_mmap_addr);
2618
2619 int cap_mmap_file(struct file *file, unsigned long reqprot,
2620 unsigned long prot, unsigned long flags)
2621 {
2622 return 0;
2623 }
2624 +EXPORT_SYMBOL(cap_mmap_file);
2625 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
2626 index 442204c..e644a1c 100644
2627 --- a/security/device_cgroup.c
2628 +++ b/security/device_cgroup.c
2629 @@ -7,6 +7,7 @@
2630 #include <linux/device_cgroup.h>
2631 #include <linux/cgroup.h>
2632 #include <linux/ctype.h>
2633 +#include <linux/export.h>
2634 #include <linux/list.h>
2635 #include <linux/uaccess.h>
2636 #include <linux/seq_file.h>
2637 @@ -493,6 +494,7 @@ found:
2638
2639 return -EPERM;
2640 }
2641 +EXPORT_SYMBOL(__devcgroup_inode_permission);
2642
2643 int devcgroup_inode_mknod(int mode, dev_t dev)
2644 {
2645 diff --git a/security/security.c b/security/security.c
2646 index 860aeb3..ffb57bf 100644
2647 --- a/security/security.c
2648 +++ b/security/security.c
2649 @@ -384,6 +384,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
2650 return 0;
2651 return security_ops->path_rmdir(dir, dentry);
2652 }
2653 +EXPORT_SYMBOL(security_path_rmdir);
2654
2655 int security_path_unlink(struct path *dir, struct dentry *dentry)
2656 {
2657 @@ -400,6 +401,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
2658 return 0;
2659 return security_ops->path_symlink(dir, dentry, old_name);
2660 }
2661 +EXPORT_SYMBOL(security_path_symlink);
2662
2663 int security_path_link(struct dentry *old_dentry, struct path *new_dir,
2664 struct dentry *new_dentry)
2665 @@ -408,6 +410,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
2666 return 0;
2667 return security_ops->path_link(old_dentry, new_dir, new_dentry);
2668 }
2669 +EXPORT_SYMBOL(security_path_link);
2670
2671 int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
2672 struct path *new_dir, struct dentry *new_dentry)
2673 @@ -426,6 +429,7 @@ int security_path_truncate(struct path *path)
2674 return 0;
2675 return security_ops->path_truncate(path);
2676 }
2677 +EXPORT_SYMBOL(security_path_truncate);
2678
2679 int security_path_chmod(struct path *path, umode_t mode)
2680 {
2681 @@ -433,6 +437,7 @@ int security_path_chmod(struct path *path, umode_t mode)
2682 return 0;
2683 return security_ops->path_chmod(path, mode);
2684 }
2685 +EXPORT_SYMBOL(security_path_chmod);
2686
2687 int security_path_chown(struct path *path, uid_t uid, gid_t gid)
2688 {
2689 @@ -440,6 +445,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
2690 return 0;
2691 return security_ops->path_chown(path, uid, gid);
2692 }
2693 +EXPORT_SYMBOL(security_path_chown);
2694
2695 int security_path_chroot(struct path *path)
2696 {
2697 @@ -516,6 +522,7 @@ int security_inode_readlink(struct dentry *dentry)
2698 return 0;
2699 return security_ops->inode_readlink(dentry);
2700 }
2701 +EXPORT_SYMBOL(security_inode_readlink);
2702
2703 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
2704 {
2705 @@ -530,6 +537,7 @@ int security_inode_permission(struct inode *inode, int mask)
2706 return 0;
2707 return security_ops->inode_permission(inode, mask);
2708 }
2709 +EXPORT_SYMBOL(security_inode_permission);
2710
2711 int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
2712 {
2713 @@ -645,6 +653,7 @@ int security_file_permission(struct file *file, int mask)
2714
2715 return fsnotify_perm(file, mask);
2716 }
2717 +EXPORT_SYMBOL(security_file_permission);
2718
2719 int security_file_alloc(struct file *file)
2720 {
2721 @@ -705,6 +714,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
2722 return ret;
2723 return ima_file_mmap(file, prot);
2724 }
2725 +EXPORT_SYMBOL(security_mmap_file);
2726
2727 int security_mmap_addr(unsigned long addr)
2728 {
2729
2730
2731
2732 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-base-0.patch
2733
2734 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-0.patch?rev=1.1&view=markup
2735 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-0.patch?rev=1.1&content-type=text/plain
2736
2737 Index: aufs3-base-0.patch
2738 ===================================================================
2739 aufs3.0 base patch
2740
2741 diff --git a/fs/namei.c b/fs/namei.c
2742 index 14ab8d3..eb4aef1 100644
2743 --- a/fs/namei.c
2744 +++ b/fs/namei.c
2745 @@ -1697,7 +1697,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
2746 * needs parent already locked. Doesn't follow mounts.
2747 * SMP-safe.
2748 */
2749 -static struct dentry *lookup_hash(struct nameidata *nd)
2750 +struct dentry *lookup_hash(struct nameidata *nd)
2751 {
2752 return __lookup_hash(&nd->last, nd->path.dentry, nd);
2753 }
2754 diff --git a/fs/splice.c b/fs/splice.c
2755 index aa866d3..19afec6 100644
2756 --- a/fs/splice.c
2757 +++ b/fs/splice.c
2758 @@ -1085,8 +1085,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
2759 /*
2760 * Attempt to initiate a splice from pipe to file.
2761 */
2762 -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2763 - loff_t *ppos, size_t len, unsigned int flags)
2764 +long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2765 + loff_t *ppos, size_t len, unsigned int flags)
2766 {
2767 ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
2768 loff_t *, size_t, unsigned int);
2769 @@ -1113,9 +1113,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2770 /*
2771 * Attempt to initiate a splice from a file to a pipe.
2772 */
2773 -static long do_splice_to(struct file *in, loff_t *ppos,
2774 - struct pipe_inode_info *pipe, size_t len,
2775 - unsigned int flags)
2776 +long do_splice_to(struct file *in, loff_t *ppos,
2777 + struct pipe_inode_info *pipe, size_t len,
2778 + unsigned int flags)
2779 {
2780 ssize_t (*splice_read)(struct file *, loff_t *,
2781 struct pipe_inode_info *, size_t, unsigned int);
2782 diff --git a/include/linux/namei.h b/include/linux/namei.h
2783 index eba45ea..21ed6c9 100644
2784 --- a/include/linux/namei.h
2785 +++ b/include/linux/namei.h
2786 @@ -82,6 +82,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
2787 extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
2788 int (*open)(struct inode *, struct file *));
2789
2790 +extern struct dentry *lookup_hash(struct nameidata *nd);
2791 extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
2792
2793 extern int follow_down_one(struct path *);
2794 diff --git a/include/linux/splice.h b/include/linux/splice.h
2795 index 997c3b4..be9a153 100644
2796 --- a/include/linux/splice.h
2797 +++ b/include/linux/splice.h
2798 @@ -89,4 +89,10 @@ extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *);
2799 extern void splice_shrink_spd(struct pipe_inode_info *,
2800 struct splice_pipe_desc *);
2801
2802 +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2803 + loff_t *ppos, size_t len, unsigned int flags);
2804 +extern long do_splice_to(struct file *in, loff_t *ppos,
2805 + struct pipe_inode_info *pipe, size_t len,
2806 + unsigned int flags);
2807 +
2808 #endif
2809
2810
2811
2812 1.1 sys-fs/aufs3/files/3_p20121129/aufs3-base-4.patch
2813
2814 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-4.patch?rev=1.1&view=markup
2815 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/aufs3/files/3_p20121129/aufs3-base-4.patch?rev=1.1&content-type=text/plain
2816
2817 Index: aufs3-base-4.patch
2818 ===================================================================
2819 aufs3.4 base patch
2820
2821 diff --git a/fs/namei.c b/fs/namei.c
2822 index c427919..7ff959b 100644
2823 --- a/fs/namei.c
2824 +++ b/fs/namei.c
2825 @@ -1831,7 +1831,7 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt,
2826 * needs parent already locked. Doesn't follow mounts.
2827 * SMP-safe.
2828 */
2829 -static struct dentry *lookup_hash(struct nameidata *nd)
2830 +struct dentry *lookup_hash(struct nameidata *nd)
2831 {
2832 return __lookup_hash(&nd->last, nd->path.dentry, nd);
2833 }
2834 diff --git a/fs/splice.c b/fs/splice.c
2835 index f847684..f871233 100644
2836 --- a/fs/splice.c
2837 +++ b/fs/splice.c
2838 @@ -1084,8 +1084,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
2839 /*
2840 * Attempt to initiate a splice from pipe to file.
2841 */
2842 -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2843 - loff_t *ppos, size_t len, unsigned int flags)
2844 +long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2845 + loff_t *ppos, size_t len, unsigned int flags)
2846 {
2847 ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
2848 loff_t *, size_t, unsigned int);
2849 @@ -1112,9 +1112,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2850 /*
2851 * Attempt to initiate a splice from a file to a pipe.
2852 */
2853 -static long do_splice_to(struct file *in, loff_t *ppos,
2854 - struct pipe_inode_info *pipe, size_t len,
2855 - unsigned int flags)
2856 +long do_splice_to(struct file *in, loff_t *ppos,
2857 + struct pipe_inode_info *pipe, size_t len,
2858 + unsigned int flags)
2859 {
2860 ssize_t (*splice_read)(struct file *, loff_t *,
2861 struct pipe_inode_info *, size_t, unsigned int);
2862 diff --git a/include/linux/namei.h b/include/linux/namei.h
2863 index ffc0213..ef35a31 100644
2864 --- a/include/linux/namei.h
2865 +++ b/include/linux/namei.h
2866 @@ -85,6 +85,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
2867 extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
2868 int (*open)(struct inode *, struct file *));
2869
2870 +extern struct dentry *lookup_hash(struct nameidata *nd);
2871 extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
2872
2873 extern int follow_down_one(struct path *);
2874 diff --git a/include/linux/splice.h b/include/linux/splice.h
2875 index 26e5b61..3ffef2f 100644
2876 --- a/include/linux/splice.h
2877 +++ b/include/linux/splice.h
2878 @@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct pipe_inode_info *,
2879 extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
2880
2881 extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
2882 +
2883 +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
2884 + loff_t *ppos, size_t len, unsigned int flags);
2885 +extern long do_splice_to(struct file *in, loff_t *ppos,
2886 + struct pipe_inode_info *pipe, size_t len,
2887 + unsigned int flags);
2888 #endif