Gentoo Archives: gentoo-commits

From: "Thomas Sachau (tommy)" <tommy@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-fs/aufs2/files: aufs2-standalone-27.patch aufs2-standalone-30.patch aufs2-standalone-28.patch aufs2-standalone-29.patch aufs2-standalone.patch
Date: Tue, 28 Jul 2009 18:43:29
Message-Id: E1MVre2-0001qx-8o@stork.gentoo.org
1 tommy 09/07/28 18:43:26
2
3 Modified: aufs2-standalone-29.patch
4 Added: aufs2-standalone-27.patch aufs2-standalone-30.patch
5 aufs2-standalone-28.patch
6 Removed: aufs2-standalone.patch
7 Log:
8 Version bump, add support for kernel version 2.6.30
9 (Portage version: 2.2_rc33-r4/cvs/Linux x86_64)
10
11 Revision Changes Path
12 1.3 sys-fs/aufs2/files/aufs2-standalone-29.patch
13
14 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/aufs2/files/aufs2-standalone-29.patch?rev=1.3&view=markup
15 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/aufs2/files/aufs2-standalone-29.patch?rev=1.3&content-type=text/plain
16 diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/aufs2/files/aufs2-standalone-29.patch?r1=1.2&r2=1.3
17
18 Index: aufs2-standalone-29.patch
19 ===================================================================
20 RCS file: /var/cvsroot/gentoo-x86/sys-fs/aufs2/files/aufs2-standalone-29.patch,v
21 retrieving revision 1.2
22 retrieving revision 1.3
23 diff -u -r1.2 -r1.3
24 --- aufs2-standalone-29.patch 5 Jun 2009 17:20:53 -0000 1.2
25 +++ aufs2-standalone-29.patch 28 Jul 2009 18:43:26 -0000 1.3
26 @@ -41,16 +41,14 @@
27 /**
28 * lookup_one_len - filesystem helper to lookup single pathname component
29 diff --git a/fs/namespace.c b/fs/namespace.c
30 -index 06f8e63..b002ec3 100644
31 +index 06f8e63..f71793e 100644
32 --- a/fs/namespace.c
33 +++ b/fs/namespace.c
34 -@@ -37,6 +37,9 @@
35 +@@ -37,6 +37,7 @@
36
37 /* spinlock for vfsmount related operations, inplace of dcache_lock */
38 __cacheline_aligned_in_smp DEFINE_SPINLOCK(vfsmount_lock);
39 -+#ifdef CONFIG_AUFS_EXPORT
40 +EXPORT_SYMBOL(vfsmount_lock);
41 -+#endif
42
43 static int event;
44 static DEFINE_IDA(mnt_id_ida);
45 @@ -119,19 +117,6 @@
46
47 /**
48 * generic_shutdown_super - common helper for ->kill_sb()
49 -diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
50 -index 23bf02f..49e5b47 100644
51 ---- a/include/linux/lockdep.h
52 -+++ b/include/linux/lockdep.h
53 -@@ -58,7 +58,7 @@ enum lock_usage_bit
54 - #define LOCKF_USED_IN_IRQ_READ \
55 - (LOCKF_USED_IN_HARDIRQ_READ | LOCKF_USED_IN_SOFTIRQ_READ)
56 -
57 --#define MAX_LOCKDEP_SUBCLASSES 8UL
58 -+#define MAX_LOCKDEP_SUBCLASSES 12UL
59 -
60 - /*
61 - * Lock-classes are keyed via unique addresses, by embedding the
62 diff --git a/include/linux/namei.h b/include/linux/namei.h
63 index fc2e035..182d43b 100644
64 --- a/include/linux/namei.h
65 @@ -174,7 +159,7 @@
66 int devcgroup_inode_mknod(int mode, dev_t dev)
67 {
68 diff --git a/security/security.c b/security/security.c
69 -index c3586c0..8b0495f 100644
70 +index c3586c0..9841a3e 100644
71 --- a/security/security.c
72 +++ b/security/security.c
73 @@ -389,6 +389,7 @@ int security_path_mkdir(struct path *path, struct dentry *dentry, int mode)
74 @@ -249,3 +234,11 @@
75
76 int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
77 {
78 +@@ -620,6 +629,7 @@ int security_file_permission(struct file *file, int mask)
79 + {
80 + return security_ops->file_permission(file, mask);
81 + }
82 ++EXPORT_SYMBOL(security_file_permission);
83 +
84 + int security_file_alloc(struct file *file)
85 + {
86
87
88
89 1.1 sys-fs/aufs2/files/aufs2-standalone-27.patch
90
91 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/aufs2/files/aufs2-standalone-27.patch?rev=1.1&view=markup
92 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/aufs2/files/aufs2-standalone-27.patch?rev=1.1&content-type=text/plain
93
94 Index: aufs2-standalone-27.patch
95 ===================================================================
96 aufs2 standalone patch for linux-2.6.27
97
98 diff --git a/fs/Kconfig b/fs/Kconfig
99 index abccb5d..b987e5e 100644
100 --- a/fs/Kconfig
101 +++ b/fs/Kconfig
102 @@ -1539,6 +1539,8 @@ config UFS_DEBUG
103 Y here. This will result in _many_ additional debugging messages to be
104 written to the system log.
105
106 +source "fs/aufs/Kconfig"
107 +
108 endmenu
109
110 menuconfig NETWORK_FILESYSTEMS
111 diff --git a/fs/Makefile b/fs/Makefile
112 index a1482a5..aa51c5a 100644
113 --- a/fs/Makefile
114 +++ b/fs/Makefile
115 @@ -122,3 +122,4 @@ obj-$(CONFIG_HPPFS) += hppfs/
116 obj-$(CONFIG_DEBUG_FS) += debugfs/
117 obj-$(CONFIG_OCFS2_FS) += ocfs2/
118 obj-$(CONFIG_GFS2_FS) += gfs2/
119 +obj-$(CONFIG_AUFS_FS) += aufs/
120 diff --git a/fs/namei.c b/fs/namei.c
121 index 4ea63ed..b207821 100644
122 --- a/fs/namei.c
123 +++ b/fs/namei.c
124 @@ -354,6 +354,7 @@ int deny_write_access(struct file * file)
125
126 return 0;
127 }
128 +EXPORT_SYMBOL(deny_write_access);
129
130 /**
131 * path_get - get a reference to a path
132 @@ -1241,7 +1242,7 @@ out:
133 * needs parent already locked. Doesn't follow mounts.
134 * SMP-safe.
135 */
136 -static struct dentry *lookup_hash(struct nameidata *nd)
137 +struct dentry *lookup_hash(struct nameidata *nd)
138 {
139 int err;
140
141 @@ -1250,8 +1251,9 @@ static struct dentry *lookup_hash(struct nameidata *nd)
142 return ERR_PTR(err);
143 return __lookup_hash(&nd->last, nd->path.dentry, nd);
144 }
145 +EXPORT_SYMBOL(lookup_hash);
146
147 -static int __lookup_one_len(const char *name, struct qstr *this,
148 +int __lookup_one_len(const char *name, struct qstr *this,
149 struct dentry *base, int len)
150 {
151 unsigned long hash;
152 @@ -1272,6 +1274,7 @@ static int __lookup_one_len(const char *name, struct qstr *this,
153 this->hash = end_name_hash(hash);
154 return 0;
155 }
156 +EXPORT_SYMBOL(__lookup_one_len);
157
158 /**
159 * lookup_one_len - filesystem helper to lookup single pathname component
160 diff --git a/fs/namespace.c b/fs/namespace.c
161 index 6e283c9..98f56b9 100644
162 --- a/fs/namespace.c
163 +++ b/fs/namespace.c
164 @@ -37,6 +37,9 @@
165
166 /* spinlock for vfsmount related operations, inplace of dcache_lock */
167 __cacheline_aligned_in_smp DEFINE_SPINLOCK(vfsmount_lock);
168 +#ifdef CONFIG_AUFS_EXPORT
169 +EXPORT_SYMBOL(vfsmount_lock);
170 +#endif
171
172 static int event;
173 static DEFINE_IDA(mnt_id_ida);
174 diff --git a/fs/open.c b/fs/open.c
175 index 07da935..b8e9726 100644
176 --- a/fs/open.c
177 +++ b/fs/open.c
178 @@ -222,6 +222,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
179 mutex_unlock(&dentry->d_inode->i_mutex);
180 return err;
181 }
182 +EXPORT_SYMBOL(do_truncate);
183
184 static long do_sys_truncate(const char __user *pathname, loff_t length)
185 {
186 diff --git a/fs/splice.c b/fs/splice.c
187 index a1e701c..48d7e72 100644
188 --- a/fs/splice.c
189 +++ b/fs/splice.c
190 @@ -887,8 +887,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
191 /*
192 * Attempt to initiate a splice from pipe to file.
193 */
194 -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
195 - loff_t *ppos, size_t len, unsigned int flags)
196 +long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
197 + loff_t *ppos, size_t len, unsigned int flags)
198 {
199 int ret;
200
201 @@ -907,13 +907,14 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
202
203 return out->f_op->splice_write(pipe, out, ppos, len, flags);
204 }
205 +EXPORT_SYMBOL(do_splice_from);
206
207 /*
208 * Attempt to initiate a splice from a file to a pipe.
209 */
210 -static long do_splice_to(struct file *in, loff_t *ppos,
211 - struct pipe_inode_info *pipe, size_t len,
212 - unsigned int flags)
213 +long do_splice_to(struct file *in, loff_t *ppos,
214 + struct pipe_inode_info *pipe, size_t len,
215 + unsigned int flags)
216 {
217 int ret;
218
219 @@ -929,6 +930,7 @@ static long do_splice_to(struct file *in, loff_t *ppos,
220
221 return in->f_op->splice_read(in, ppos, pipe, len, flags);
222 }
223 +EXPORT_SYMBOL(do_splice_to);
224
225 /**
226 * splice_direct_to_actor - splices data directly between two non-pipes
227 diff --git a/fs/super.c b/fs/super.c
228 index e931ae9..141853c 100644
229 --- a/fs/super.c
230 +++ b/fs/super.c
231 @@ -270,6 +270,7 @@ int fsync_super(struct super_block *sb)
232 __fsync_super(sb);
233 return sync_blockdev(sb->s_bdev);
234 }
235 +EXPORT_SYMBOL(fsync_super);
236
237 /**
238 * generic_shutdown_super - common helper for ->kill_sb()
239 diff --git a/fs/sync.c b/fs/sync.c
240 index 2967562..34040d6 100644
241 --- a/fs/sync.c
242 +++ b/fs/sync.c
243 @@ -104,6 +104,7 @@ long do_fsync(struct file *file, int datasync)
244 out:
245 return ret;
246 }
247 +EXPORT_SYMBOL(do_fsync);
248
249 static long __do_fsync(unsigned int fd, int datasync)
250 {
251 diff --git a/include/linux/Kbuild b/include/linux/Kbuild
252 index b68ec09..22d182c 100644
253 --- a/include/linux/Kbuild
254 +++ b/include/linux/Kbuild
255 @@ -34,6 +34,7 @@ header-y += atmppp.h
256 header-y += atmsap.h
257 header-y += atmsvc.h
258 header-y += atm_zatm.h
259 +header-y += aufs_type.h
260 header-y += auto_fs4.h
261 header-y += ax25.h
262 header-y += b1lli.h
263 diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
264 index 331e5f1..606bf6e 100644
265 --- a/include/linux/lockdep.h
266 +++ b/include/linux/lockdep.h
267 @@ -58,7 +58,7 @@ enum lock_usage_bit
268 #define LOCKF_USED_IN_IRQ_READ \
269 (LOCKF_USED_IN_HARDIRQ_READ | LOCKF_USED_IN_SOFTIRQ_READ)
270
271 -#define MAX_LOCKDEP_SUBCLASSES 8UL
272 +#define MAX_LOCKDEP_SUBCLASSES 12UL
273
274 /*
275 * Lock-classes are keyed via unique addresses, by embedding the
276 diff --git a/include/linux/namei.h b/include/linux/namei.h
277 index 68f8c32..5522432 100644
278 --- a/include/linux/namei.h
279 +++ b/include/linux/namei.h
280 @@ -71,6 +71,9 @@ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry
281 extern struct file *nameidata_to_filp(struct nameidata *nd, int flags);
282 extern void release_open_intent(struct nameidata *);
283
284 +extern struct dentry *lookup_hash(struct nameidata *nd);
285 +extern int __lookup_one_len(const char *name, struct qstr *this,
286 + struct dentry *base, int len);
287 extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
288 extern struct dentry *lookup_one_noperm(const char *, struct dentry *);
289
290 diff --git a/include/linux/splice.h b/include/linux/splice.h
291 index 528dcb9..5123bc6 100644
292 --- a/include/linux/splice.h
293 +++ b/include/linux/splice.h
294 @@ -71,4 +71,10 @@ extern ssize_t splice_to_pipe(struct pipe_inode_info *,
295 extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *,
296 splice_direct_actor *);
297
298 +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
299 + loff_t *ppos, size_t len, unsigned int flags);
300 +extern long do_splice_to(struct file *in, loff_t *ppos,
301 + struct pipe_inode_info *pipe, size_t len,
302 + unsigned int flags);
303 +
304 #endif
305 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
306 index 46f2397..00ec611 100644
307 --- a/security/device_cgroup.c
308 +++ b/security/device_cgroup.c
309 @@ -537,6 +537,7 @@ acc_check:
310
311 return -EPERM;
312 }
313 +EXPORT_SYMBOL(devcgroup_inode_permission);
314
315 int devcgroup_inode_mknod(int mode, dev_t dev)
316 {
317 diff --git a/security/security.c b/security/security.c
318 index 3a4b4f5..4d7882e 100644
319 --- a/security/security.c
320 +++ b/security/security.c
321 @@ -425,6 +425,7 @@ int security_inode_readlink(struct dentry *dentry)
322 return 0;
323 return security_ops->inode_readlink(dentry);
324 }
325 +EXPORT_SYMBOL(security_inode_readlink);
326
327 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
328 {
329 @@ -439,6 +440,7 @@ int security_inode_permission(struct inode *inode, int mask)
330 return 0;
331 return security_ops->inode_permission(inode, mask);
332 }
333 +EXPORT_SYMBOL(security_inode_permission);
334
335 int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
336 {
337
338
339
340 1.1 sys-fs/aufs2/files/aufs2-standalone-30.patch
341
342 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/aufs2/files/aufs2-standalone-30.patch?rev=1.1&view=markup
343 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/aufs2/files/aufs2-standalone-30.patch?rev=1.1&content-type=text/plain
344
345 Index: aufs2-standalone-30.patch
346 ===================================================================
347 aufs2 standalone patch for linux-2.6.30
348
349 diff --git a/fs/namei.c b/fs/namei.c
350 index 967c3db..64a5060 100644
351 --- a/fs/namei.c
352 +++ b/fs/namei.c
353 @@ -337,6 +337,7 @@ int deny_write_access(struct file * file)
354
355 return 0;
356 }
357 +EXPORT_SYMBOL(deny_write_access);
358
359 /**
360 * path_get - get a reference to a path
361 @@ -1200,7 +1201,7 @@ out:
362 * needs parent already locked. Doesn't follow mounts.
363 * SMP-safe.
364 */
365 -static struct dentry *lookup_hash(struct nameidata *nd)
366 +struct dentry *lookup_hash(struct nameidata *nd)
367 {
368 int err;
369
370 @@ -1209,8 +1210,9 @@ static struct dentry *lookup_hash(struct nameidata *nd)
371 return ERR_PTR(err);
372 return __lookup_hash(&nd->last, nd->path.dentry, nd);
373 }
374 +EXPORT_SYMBOL(lookup_hash);
375
376 -static int __lookup_one_len(const char *name, struct qstr *this,
377 +int __lookup_one_len(const char *name, struct qstr *this,
378 struct dentry *base, int len)
379 {
380 unsigned long hash;
381 @@ -1231,6 +1233,7 @@ static int __lookup_one_len(const char *name, struct qstr *this,
382 this->hash = end_name_hash(hash);
383 return 0;
384 }
385 +EXPORT_SYMBOL(__lookup_one_len);
386
387 /**
388 * lookup_one_len - filesystem helper to lookup single pathname component
389 diff --git a/fs/namespace.c b/fs/namespace.c
390 index 134d494..5a6d038 100644
391 --- a/fs/namespace.c
392 +++ b/fs/namespace.c
393 @@ -38,6 +38,7 @@
394
395 /* spinlock for vfsmount related operations, inplace of dcache_lock */
396 __cacheline_aligned_in_smp DEFINE_SPINLOCK(vfsmount_lock);
397 +EXPORT_SYMBOL(vfsmount_lock);
398
399 static int event;
400 static DEFINE_IDA(mnt_id_ida);
401 diff --git a/fs/open.c b/fs/open.c
402 index bdfbf03..81c39b3 100644
403 --- a/fs/open.c
404 +++ b/fs/open.c
405 @@ -221,6 +221,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
406 mutex_unlock(&dentry->d_inode->i_mutex);
407 return err;
408 }
409 +EXPORT_SYMBOL(do_truncate);
410
411 static long do_sys_truncate(const char __user *pathname, loff_t length)
412 {
413 diff --git a/fs/splice.c b/fs/splice.c
414 index 666953d..fbc3f77 100644
415 --- a/fs/splice.c
416 +++ b/fs/splice.c
417 @@ -905,8 +905,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
418 /*
419 * Attempt to initiate a splice from pipe to file.
420 */
421 -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
422 - loff_t *ppos, size_t len, unsigned int flags)
423 +long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
424 + loff_t *ppos, size_t len, unsigned int flags)
425 {
426 int ret;
427
428 @@ -925,13 +925,14 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
429
430 return out->f_op->splice_write(pipe, out, ppos, len, flags);
431 }
432 +EXPORT_SYMBOL(do_splice_from);
433
434 /*
435 * Attempt to initiate a splice from a file to a pipe.
436 */
437 -static long do_splice_to(struct file *in, loff_t *ppos,
438 - struct pipe_inode_info *pipe, size_t len,
439 - unsigned int flags)
440 +long do_splice_to(struct file *in, loff_t *ppos,
441 + struct pipe_inode_info *pipe, size_t len,
442 + unsigned int flags)
443 {
444 int ret;
445
446 @@ -947,6 +948,7 @@ static long do_splice_to(struct file *in, loff_t *ppos,
447
448 return in->f_op->splice_read(in, ppos, pipe, len, flags);
449 }
450 +EXPORT_SYMBOL(do_splice_to);
451
452 /**
453 * splice_direct_to_actor - splices data directly between two non-pipes
454 diff --git a/include/linux/namei.h b/include/linux/namei.h
455 index 518098f..42a5279 100644
456 --- a/include/linux/namei.h
457 +++ b/include/linux/namei.h
458 @@ -74,6 +74,9 @@ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry
459 extern struct file *nameidata_to_filp(struct nameidata *nd, int flags);
460 extern void release_open_intent(struct nameidata *);
461
462 +extern struct dentry *lookup_hash(struct nameidata *nd);
463 +extern int __lookup_one_len(const char *name, struct qstr *this,
464 + struct dentry *base, int len);
465 extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
466 extern struct dentry *lookup_one_noperm(const char *, struct dentry *);
467
468 diff --git a/include/linux/splice.h b/include/linux/splice.h
469 index 5f3faa9..d2f8660 100644
470 --- a/include/linux/splice.h
471 +++ b/include/linux/splice.h
472 @@ -83,4 +83,10 @@ extern ssize_t splice_to_pipe(struct pipe_inode_info *,
473 extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *,
474 splice_direct_actor *);
475
476 +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
477 + loff_t *ppos, size_t len, unsigned int flags);
478 +extern long do_splice_to(struct file *in, loff_t *ppos,
479 + struct pipe_inode_info *pipe, size_t len,
480 + unsigned int flags);
481 +
482 #endif
483 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
484 index 5fda7df..440e476 100644
485 --- a/security/device_cgroup.c
486 +++ b/security/device_cgroup.c
487 @@ -512,6 +512,7 @@ acc_check:
488
489 return -EPERM;
490 }
491 +EXPORT_SYMBOL(devcgroup_inode_permission);
492
493 int devcgroup_inode_mknod(int mode, dev_t dev)
494 {
495 diff --git a/security/security.c b/security/security.c
496 index 5284255..ed62ecd 100644
497 --- a/security/security.c
498 +++ b/security/security.c
499 @@ -389,6 +389,7 @@ int security_path_mkdir(struct path *path, struct dentry *dentry, int mode)
500 return 0;
501 return security_ops->path_mkdir(path, dentry, mode);
502 }
503 +EXPORT_SYMBOL(security_path_mkdir);
504
505 int security_path_rmdir(struct path *path, struct dentry *dentry)
506 {
507 @@ -396,6 +397,7 @@ int security_path_rmdir(struct path *path, struct dentry *dentry)
508 return 0;
509 return security_ops->path_rmdir(path, dentry);
510 }
511 +EXPORT_SYMBOL(security_path_rmdir);
512
513 int security_path_unlink(struct path *path, struct dentry *dentry)
514 {
515 @@ -403,6 +405,7 @@ int security_path_unlink(struct path *path, struct dentry *dentry)
516 return 0;
517 return security_ops->path_unlink(path, dentry);
518 }
519 +EXPORT_SYMBOL(security_path_unlink);
520
521 int security_path_symlink(struct path *path, struct dentry *dentry,
522 const char *old_name)
523 @@ -411,6 +414,7 @@ int security_path_symlink(struct path *path, struct dentry *dentry,
524 return 0;
525 return security_ops->path_symlink(path, dentry, old_name);
526 }
527 +EXPORT_SYMBOL(security_path_symlink);
528
529 int security_path_link(struct dentry *old_dentry, struct path *new_dir,
530 struct dentry *new_dentry)
531 @@ -419,6 +423,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
532 return 0;
533 return security_ops->path_link(old_dentry, new_dir, new_dentry);
534 }
535 +EXPORT_SYMBOL(security_path_link);
536
537 int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
538 struct path *new_dir, struct dentry *new_dentry)
539 @@ -429,6 +434,7 @@ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
540 return security_ops->path_rename(old_dir, old_dentry, new_dir,
541 new_dentry);
542 }
543 +EXPORT_SYMBOL(security_path_rename);
544
545 int security_path_truncate(struct path *path, loff_t length,
546 unsigned int time_attrs)
547 @@ -437,6 +443,7 @@ int security_path_truncate(struct path *path, loff_t length,
548 return 0;
549 return security_ops->path_truncate(path, length, time_attrs);
550 }
551 +EXPORT_SYMBOL(security_path_truncate);
552 #endif
553
554 int security_inode_create(struct inode *dir, struct dentry *dentry, int mode)
555 @@ -508,6 +515,7 @@ int security_inode_readlink(struct dentry *dentry)
556 return 0;
557 return security_ops->inode_readlink(dentry);
558 }
559 +EXPORT_SYMBOL(security_inode_readlink);
560
561 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
562 {
563 @@ -522,6 +530,7 @@ int security_inode_permission(struct inode *inode, int mask)
564 return 0;
565 return security_ops->inode_permission(inode, mask);
566 }
567 +EXPORT_SYMBOL(security_inode_permission);
568
569 int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
570 {
571 @@ -622,6 +631,7 @@ int security_file_permission(struct file *file, int mask)
572 {
573 return security_ops->file_permission(file, mask);
574 }
575 +EXPORT_SYMBOL(security_file_permission);
576
577 int security_file_alloc(struct file *file)
578 {
579
580
581
582 1.1 sys-fs/aufs2/files/aufs2-standalone-28.patch
583
584 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/aufs2/files/aufs2-standalone-28.patch?rev=1.1&view=markup
585 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-fs/aufs2/files/aufs2-standalone-28.patch?rev=1.1&content-type=text/plain
586
587 Index: aufs2-standalone-28.patch
588 ===================================================================
589 aufs2 standalone patch for linux-2.6.28
590
591 diff --git a/fs/namei.c b/fs/namei.c
592 index d34e0f9..2779304 100644
593 --- a/fs/namei.c
594 +++ b/fs/namei.c
595 @@ -341,6 +341,7 @@ int deny_write_access(struct file * file)
596
597 return 0;
598 }
599 +EXPORT_SYMBOL(deny_write_access);
600
601 /**
602 * path_get - get a reference to a path
603 @@ -1212,7 +1213,7 @@ out:
604 * needs parent already locked. Doesn't follow mounts.
605 * SMP-safe.
606 */
607 -static struct dentry *lookup_hash(struct nameidata *nd)
608 +struct dentry *lookup_hash(struct nameidata *nd)
609 {
610 int err;
611
612 @@ -1221,8 +1222,9 @@ static struct dentry *lookup_hash(struct nameidata *nd)
613 return ERR_PTR(err);
614 return __lookup_hash(&nd->last, nd->path.dentry, nd);
615 }
616 +EXPORT_SYMBOL(lookup_hash);
617
618 -static int __lookup_one_len(const char *name, struct qstr *this,
619 +int __lookup_one_len(const char *name, struct qstr *this,
620 struct dentry *base, int len)
621 {
622 unsigned long hash;
623 @@ -1243,6 +1245,7 @@ static int __lookup_one_len(const char *name, struct qstr *this,
624 this->hash = end_name_hash(hash);
625 return 0;
626 }
627 +EXPORT_SYMBOL(__lookup_one_len);
628
629 /**
630 * lookup_one_len - filesystem helper to lookup single pathname component
631 diff --git a/fs/namespace.c b/fs/namespace.c
632 index 65b3dc8..39fbbac 100644
633 --- a/fs/namespace.c
634 +++ b/fs/namespace.c
635 @@ -37,6 +37,7 @@
636
637 /* spinlock for vfsmount related operations, inplace of dcache_lock */
638 __cacheline_aligned_in_smp DEFINE_SPINLOCK(vfsmount_lock);
639 +EXPORT_SYMBOL(vfsmount_lock);
640
641 static int event;
642 static DEFINE_IDA(mnt_id_ida);
643 diff --git a/fs/open.c b/fs/open.c
644 index 83cdb9d..bb43dab 100644
645 --- a/fs/open.c
646 +++ b/fs/open.c
647 @@ -222,6 +222,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
648 mutex_unlock(&dentry->d_inode->i_mutex);
649 return err;
650 }
651 +EXPORT_SYMBOL(do_truncate);
652
653 static long do_sys_truncate(const char __user *pathname, loff_t length)
654 {
655 diff --git a/fs/splice.c b/fs/splice.c
656 index 1abab5c..7b7d65e 100644
657 --- a/fs/splice.c
658 +++ b/fs/splice.c
659 @@ -887,8 +887,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
660 /*
661 * Attempt to initiate a splice from pipe to file.
662 */
663 -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
664 - loff_t *ppos, size_t len, unsigned int flags)
665 +long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
666 + loff_t *ppos, size_t len, unsigned int flags)
667 {
668 int ret;
669
670 @@ -907,13 +907,14 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
671
672 return out->f_op->splice_write(pipe, out, ppos, len, flags);
673 }
674 +EXPORT_SYMBOL(do_splice_from);
675
676 /*
677 * Attempt to initiate a splice from a file to a pipe.
678 */
679 -static long do_splice_to(struct file *in, loff_t *ppos,
680 - struct pipe_inode_info *pipe, size_t len,
681 - unsigned int flags)
682 +long do_splice_to(struct file *in, loff_t *ppos,
683 + struct pipe_inode_info *pipe, size_t len,
684 + unsigned int flags)
685 {
686 int ret;
687
688 @@ -929,6 +930,7 @@ static long do_splice_to(struct file *in, loff_t *ppos,
689
690 return in->f_op->splice_read(in, ppos, pipe, len, flags);
691 }
692 +EXPORT_SYMBOL(do_splice_to);
693
694 /**
695 * splice_direct_to_actor - splices data directly between two non-pipes
696 diff --git a/fs/super.c b/fs/super.c
697 index 400a760..a1df361 100644
698 --- a/fs/super.c
699 +++ b/fs/super.c
700 @@ -270,6 +270,7 @@ int fsync_super(struct super_block *sb)
701 __fsync_super(sb);
702 return sync_blockdev(sb->s_bdev);
703 }
704 +EXPORT_SYMBOL(fsync_super);
705
706 /**
707 * generic_shutdown_super - common helper for ->kill_sb()
708 diff --git a/fs/sync.c b/fs/sync.c
709 index 2967562..34040d6 100644
710 --- a/fs/sync.c
711 +++ b/fs/sync.c
712 @@ -104,6 +104,7 @@ long do_fsync(struct file *file, int datasync)
713 out:
714 return ret;
715 }
716 +EXPORT_SYMBOL(do_fsync);
717
718 static long __do_fsync(unsigned int fd, int datasync)
719 {
720 diff --git a/include/linux/namei.h b/include/linux/namei.h
721 index 99eb803..f6cdf1c 100644
722 --- a/include/linux/namei.h
723 +++ b/include/linux/namei.h
724 @@ -75,6 +75,9 @@ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry
725 extern struct file *nameidata_to_filp(struct nameidata *nd, int flags);
726 extern void release_open_intent(struct nameidata *);
727
728 +extern struct dentry *lookup_hash(struct nameidata *nd);
729 +extern int __lookup_one_len(const char *name, struct qstr *this,
730 + struct dentry *base, int len);
731 extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
732 extern struct dentry *lookup_one_noperm(const char *, struct dentry *);
733
734 diff --git a/include/linux/splice.h b/include/linux/splice.h
735 index 528dcb9..5123bc6 100644
736 --- a/include/linux/splice.h
737 +++ b/include/linux/splice.h
738 @@ -71,4 +71,10 @@ extern ssize_t splice_to_pipe(struct pipe_inode_info *,
739 extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *,
740 splice_direct_actor *);
741
742 +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
743 + loff_t *ppos, size_t len, unsigned int flags);
744 +extern long do_splice_to(struct file *in, loff_t *ppos,
745 + struct pipe_inode_info *pipe, size_t len,
746 + unsigned int flags);
747 +
748 #endif
749 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
750 index 5ba7870..8f880c2 100644
751 --- a/security/device_cgroup.c
752 +++ b/security/device_cgroup.c
753 @@ -507,6 +507,7 @@ acc_check:
754
755 return -EPERM;
756 }
757 +EXPORT_SYMBOL(devcgroup_inode_permission);
758
759 int devcgroup_inode_mknod(int mode, dev_t dev)
760 {
761 diff --git a/security/security.c b/security/security.c
762 index c0acfa7..812ebf4 100644
763 --- a/security/security.c
764 +++ b/security/security.c
765 @@ -434,6 +434,7 @@ int security_inode_readlink(struct dentry *dentry)
766 return 0;
767 return security_ops->inode_readlink(dentry);
768 }
769 +EXPORT_SYMBOL(security_inode_readlink);
770
771 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
772 {
773 @@ -448,6 +449,7 @@ int security_inode_permission(struct inode *inode, int mask)
774 return 0;
775 return security_ops->inode_permission(inode, mask);
776 }
777 +EXPORT_SYMBOL(security_inode_permission);
778
779 int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
780 {
781 @@ -548,6 +550,7 @@ int security_file_permission(struct file *file, int mask)
782 {
783 return security_ops->file_permission(file, mask);
784 }
785 +EXPORT_SYMBOL(security_file_permission);
786
787 int security_file_alloc(struct file *file)
788 {