summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2012-12-10 08:06:14 +0000
committerJustin Lecher <jlec@gentoo.org>2012-12-10 08:06:14 +0000
commit35074d91c0412d7a48012ae26830467cde9b26e9 (patch)
treea4b8ddc3fa006edfea24b37d9e3f2adfd320afa1 /sys-fs/aufs3
parentAmeld lower bounds for test depends. (diff)
downloadhistorical-35074d91c0412d7a48012ae26830467cde9b26e9.tar.gz
historical-35074d91c0412d7a48012ae26830467cde9b26e9.tar.bz2
historical-35074d91c0412d7a48012ae26830467cde9b26e9.zip
sys-fs/aufs3: Version BUmp
Package-Manager: portage-2.2.0_alpha147/cvs/Linux x86_64 Manifest-Sign-Key: 0x70EB7916
Diffstat (limited to 'sys-fs/aufs3')
-rw-r--r--sys-fs/aufs3/ChangeLog23
-rw-r--r--sys-fs/aufs3/Manifest26
-rw-r--r--sys-fs/aufs3/aufs3-3_p20121210.ebuild149
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-base-0.patch70
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-base-1.patch70
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-base-2.patch70
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-base-3.patch70
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-base-4.patch70
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-base-5.patch95
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-base-6.patch70
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-base-x-rcN.patch83
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-standalone-0.patch257
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-standalone-1.patch249
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-standalone-2.patch257
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-standalone-3.patch257
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-standalone-4.patch257
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-standalone-5.patch288
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-standalone-6.patch276
-rw-r--r--sys-fs/aufs3/files/3_p20121210/aufs3-standalone-x-rcN.patch276
19 files changed, 2908 insertions, 5 deletions
diff --git a/sys-fs/aufs3/ChangeLog b/sys-fs/aufs3/ChangeLog
index f88bb7442d6d..5118740e9c30 100644
--- a/sys-fs/aufs3/ChangeLog
+++ b/sys-fs/aufs3/ChangeLog
@@ -1,6 +1,27 @@
# ChangeLog for sys-fs/aufs3
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/aufs3/ChangeLog,v 1.37 2012/12/05 13:37:42 jlec Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/aufs3/ChangeLog,v 1.38 2012/12/10 08:06:13 jlec Exp $
+
+*aufs3-3_p20121210 (10 Dec 2012)
+
+ 10 Dec 2012; Justin Lecher <jlec@gentoo.org>
+ +files/3_p20121210/aufs3-base-0.patch,
+ +files/3_p20121210/aufs3-standalone-0.patch,
+ +files/3_p20121210/aufs3-base-1.patch,
+ +files/3_p20121210/aufs3-standalone-1.patch,
+ +files/3_p20121210/aufs3-base-2.patch,
+ +files/3_p20121210/aufs3-standalone-2.patch, +aufs3-3_p20121210.ebuild,
+ +files/3_p20121210/aufs3-base-3.patch,
+ +files/3_p20121210/aufs3-standalone-3.patch,
+ +files/3_p20121210/aufs3-base-4.patch,
+ +files/3_p20121210/aufs3-standalone-4.patch,
+ +files/3_p20121210/aufs3-base-x-rcN.patch,
+ +files/3_p20121210/aufs3-base-5.patch,
+ +files/3_p20121210/aufs3-standalone-x-rcN.patch,
+ +files/3_p20121210/aufs3-standalone-5.patch,
+ +files/3_p20121210/aufs3-base-6.patch,
+ +files/3_p20121210/aufs3-standalone-6.patch:
+ Version BUmp
05 Dec 2012; Justin Lecher <jlec@gentoo.org> aufs3-3_p20121129.ebuild:
Check for PAX when using USE=pax_kernel, #445272
diff --git a/sys-fs/aufs3/Manifest b/sys-fs/aufs3/Manifest
index e3f50f8c2404..d7b9995c6436 100644
--- a/sys-fs/aufs3/Manifest
+++ b/sys-fs/aufs3/Manifest
@@ -33,6 +33,22 @@ AUX 3_p20121129/aufs3-standalone-4.patch 7671 SHA256 c9b3a8f32d429eb4ae9749c112e
AUX 3_p20121129/aufs3-standalone-5.patch 8448 SHA256 a7472965292ea881cca3a42319e130778559e7211a758026727e20db3e7f77b4 SHA512 41992935a858f0f211f88f344aecda06b28aba7e389b1e9820689766b13de93a2ab72b0e6683fd473979c349e099db58e113bbb269dedf6c8241852d2d48d2b1 WHIRLPOOL 80844451d158d47f661d1813452c7c1da37b2b0f949e096be09d35e03dde17836786cd4713426658780bd7c10bca5713ce8a7cc7c601a96978d03ab5011c76a4
AUX 3_p20121129/aufs3-standalone-6.patch 8103 SHA256 5c03d5444b9bf24bf17a166ecd42ce4d80940367aff3feb23c8f87d39c706980 SHA512 3da35723835be13e4043d55b62021625a352dc33a67966d5cbfa4609d40d636fd36c05d228152ea7667f1682e9fcaae8a52e8dadcdf986f1f365b5d4b4d9598d WHIRLPOOL 49533cf8c38fc2f0cb5a05218461cb1cfac022043801864d0cdef29dc7fed9c9d3e57faf35bec726c6d13c1b931cc3bd78ce65ee6a5642e1b131d03732f8c209
AUX 3_p20121129/aufs3-standalone-x-rcN.patch 8236 SHA256 e63f9933edf0d196bfef7a9a7c051f755e113ebd88977bb90bebd97096ce79f1 SHA512 b013353745852a71701d79076cc2f3cb91aad0c18e4d90438c6e2f5dcd1d28d92d3be37a558dda9d74a56055dd5cfe899d8d3cd3ca3f8c6dd189d8889094fb59 WHIRLPOOL 45295276a83917d778553c68af91bc4d1cba6efc70b7d6621dd3ea2f59c6722e088cebfbeccef64e118fe921e42d482a0f227ca3a3261733ffb3262a93e40b8f
+AUX 3_p20121210/aufs3-base-0.patch 2711 SHA256 4d6e669f9bebc301d0acf3e0dedaaff84aaa19ef7633da3c11cc3430d232ce86 SHA512 4736efcbb130516341305db5ef05ad041d7e29b13cc65f5164481f4ca11e2d4599684564965289e8f9028e0ff3db6b9a5249b90936997ee67531af961f872d43 WHIRLPOOL d584edda240b3b710c05dca1ae9689d6a18a4e57db84409c6056d3932544145edc098fb668ce29ef8fe589a5852fbbf4d6a89f14867610242bd6af4ac68b14aa
+AUX 3_p20121210/aufs3-base-1.patch 2734 SHA256 70c4c17b12ad6edb7e7f29f1643c0348fd8a961fc7f960740cb4d17f3e380e08 SHA512 26c4a5bc2789e5d7d4ee8a940ab8978873ef65aca553a4ea4e3ec5476afcce1d26a8a686534c64ca3ac51fda9445beb7d2b4afc0c6bca8fd0b8562f96e211f0f WHIRLPOOL 0d0ae1f51d96a333e73217c17bd68e3ca1a9a9ba68fe42ad4062d174dd529a4b13e5ce2effe1b3140e449aa02c39dfa99d93c1c0a7a6e4e12bbd41ddf29e5af1
+AUX 3_p20121210/aufs3-base-2.patch 2734 SHA256 2635ca013f170d4381826ec5b3aba3c15bfabd567df435df2c522c8ccd07ccb4 SHA512 e923fdb6ba4c1e0d691bb466388ef9363bda395d20b9f0fce350a22304c4072a4d2a01d7ab03743ffab575342f464a356404532f14f6120a7e24b07b0541831d WHIRLPOOL 1adc47dddf708464a0fcf9172e516e99040c3bafdac2ea65b7a78309c47b7c374d46110d8d52d746c1d8521e2dd366485ad5e007c4f4d15c9beb719e780731ca
+AUX 3_p20121210/aufs3-base-3.patch 2734 SHA256 60f619c05540a42115044ba5bc752c1a5a8be905c55fbad3fd839114578c69c5 SHA512 03e6ac1d39a2379961342e5d69db1bac9bf21f53ab28c84b81c4424f94fd771893c64478f8fd36acff5182eb364b93367b30fa033ae78a831f538550d6ffd1b8 WHIRLPOOL 126f1798e9ba6a7f75634e3e195c4fcd3f5f4331b0b5f22364caeefd1591171604bac25860d865f36324ebfd9f6bf39e45d69977caaa496acdf92b34324ea96a
+AUX 3_p20121210/aufs3-base-4.patch 2744 SHA256 874493462520e2323b973cb330e527bd629907bf9cc9ed0f1cea575628b0011e SHA512 d7a0a216f959121dfed9b421f7ed5dd775e5cafb646edc6e25ec14665e7956fbc91fef848839854a2c922dfda5e8112d49a7201dcd94a04c8a4562d39aba4d8c WHIRLPOOL b42bd47f14837b7d10582a2c82eac5dc1c4ecb62b3bf092d33a815cf4fabb121e74c6333149c6efcf5e2757a70051f2efdf1f06bbbda1e4aaf43a931c1c6b0b4
+AUX 3_p20121210/aufs3-base-5.patch 3879 SHA256 e214c467b7540ac5555dd14baa48baf1c6e222a907894a96fb9809d8d438487b SHA512 d0609940762471469fe1165b66e75ac8298e9cd927bbed9f9a4fc40dfd6c9e9e2670a863c34e07bc7a94a40f0567cd1201d8f8bf395b212d053eb94c3d5a8392 WHIRLPOOL c7b1edb6fa9cd4222068ff8e51948e205ccb35bfc88dde9455754ee31ae79bf5987e659be5307ded9e5d7259940af9d23519b2140b5a1a760dff218890f55208
+AUX 3_p20121210/aufs3-base-6.patch 2902 SHA256 3bdbe6b018ebe9cd6b8ead2e87eac3447a50efdbb5ec286a9b27234903082316 SHA512 73ae5893b412f8bd327450bc3001c5f2ac920c8dec62e797f7e86fcb04e5c75966fd4aabe658b4e805e1874dc5c7d22801bece7a1ce466557bdc07b606bde327 WHIRLPOOL 223ad3617c2d2ba6c34883421e9b66359e2f0e573721e2148c4e53c27ca627e9c9451e6c6a865784d2033f772c5aa5d85c3799d227e3c90743ca1df22b321a24
+AUX 3_p20121210/aufs3-base-x-rcN.patch 3275 SHA256 604881ec4e3fcce4fe8cec256f18faa1034714cf4fdcdf0fc13dda0fc8cc809d SHA512 522a7cdbe7b2d713c643dbb46ef594233d862dea4d5590bc288a548eeb3a74ad14efc49b394a0c5c90190f2d502ffd6fd3bef41db1e704b8d9172f7380b1f102 WHIRLPOOL efaeac8fdf978768514f1575a62ed16aad3d2985549ff7b902d73487488066ec5202ecffc7906874da128cf370e940a6cf1c34b9f935cf96bec69bc2dbd35ebc
+AUX 3_p20121210/aufs3-standalone-0.patch 7666 SHA256 53a2613f6da1d418d55e20e5b3f020c3382be0789260a312b7ce97334939f203 SHA512 50c9d1f7e392538c05c13023534621aa51e611d7e27c9bdebaf1df1de4c6208cb2e1decb2c8c9d0c4b866254ca24b2ba13e573f632f90e4112be3c093913d23c WHIRLPOOL 108f0911b1bb656c1419bdaae18b9f77f685ee54d279dd2e4221ac50d6761764d98cea65ccf75c52a94296bdb467c1557fe6bc4f8337ea2ec2fc5aa303595a23
+AUX 3_p20121210/aufs3-standalone-1.patch 7510 SHA256 63b08742aef9f34132fb7cc0caf107a9c7162665d24401573f12f8f96ad1407f SHA512 08b01555895fb5a487058c770a91976751b11d980183153ad459e49f75b167971c450a32d0c0f96a0c7f1292de9cbb4e997ef50ce2ee520d78411ec93ba5b406 WHIRLPOOL c3042e9c3a0ddae4ec1a5e6bd70befc89e1a10c2312e9e7cffe50b33ac3870763942e68c3cc7e11d4c3fbb7a14fb1bffb1894e07e416b2b78fa680480c670f24
+AUX 3_p20121210/aufs3-standalone-2.patch 7722 SHA256 eb7f414f2a9f07e09c2c0eae9972b21a51ada5718a17e978aea1f39dd32bb0b3 SHA512 7e3d405bc9d2c1e0d1b92020569da8dc729cd1349828e2bd837cd35537b745c64b62c807ec962750e7da26d5f23b770c16a898d3ce232034b7f461d443573685 WHIRLPOOL f5e5d49ede20c3cbaf8dbf5088dddaaa40c767c16a2a79d1771551841a7862369bd704722e5f73326808c9af395b06d18480590cfa6f2492baeee7a4aced9abb
+AUX 3_p20121210/aufs3-standalone-3.patch 7671 SHA256 e450fa66ebf041d10db5a594c87f83e47a39e29f6054310d6e56b44e31ad0971 SHA512 14431367818853979e5cf77cf226438fb3fcd353028b6df8c39eefd6d9e4a4bbd6aba67cc59b72cbedc6ed1fd8bdbcc60022e92d8f35fc0e544c6487d21cda02 WHIRLPOOL 18c52b08d5b498b667c8e1ea1503795bd8601a9bd06397a2917d6d7738101bd6b0eec48e5bdfb16ab4c7a17ac7854110b53eda7b54bb8265e53fd415576afd43
+AUX 3_p20121210/aufs3-standalone-4.patch 7672 SHA256 2a8bea37b574f2e8a795657f9f04e97214144544857ad2c2b48557517a4fd6d6 SHA512 b206e153240ac2b12c0bda4d126652b483b41e4d058a5bcc83dc37365d74a4fb6deae243261f0b35797090e3e516b8193fb104493f53c173abcdff0989fc4551 WHIRLPOOL 87159354f1dba3b3818aaaf320d00e9f6601c4fb2743169bd39febdc11d361272155217c05851aceb2548fb3ac379a05e42f424cbc8e772eef223fbc87afe54c
+AUX 3_p20121210/aufs3-standalone-5.patch 8448 SHA256 a7472965292ea881cca3a42319e130778559e7211a758026727e20db3e7f77b4 SHA512 41992935a858f0f211f88f344aecda06b28aba7e389b1e9820689766b13de93a2ab72b0e6683fd473979c349e099db58e113bbb269dedf6c8241852d2d48d2b1 WHIRLPOOL 80844451d158d47f661d1813452c7c1da37b2b0f949e096be09d35e03dde17836786cd4713426658780bd7c10bca5713ce8a7cc7c601a96978d03ab5011c76a4
+AUX 3_p20121210/aufs3-standalone-6.patch 8103 SHA256 5c03d5444b9bf24bf17a166ecd42ce4d80940367aff3feb23c8f87d39c706980 SHA512 3da35723835be13e4043d55b62021625a352dc33a67966d5cbfa4609d40d636fd36c05d228152ea7667f1682e9fcaae8a52e8dadcdf986f1f365b5d4b4d9598d WHIRLPOOL 49533cf8c38fc2f0cb5a05218461cb1cfac022043801864d0cdef29dc7fed9c9d3e57faf35bec726c6d13c1b931cc3bd78ce65ee6a5642e1b131d03732f8c209
+AUX 3_p20121210/aufs3-standalone-x-rcN.patch 8236 SHA256 e63f9933edf0d196bfef7a9a7c051f755e113ebd88977bb90bebd97096ce79f1 SHA512 b013353745852a71701d79076cc2f3cb91aad0c18e4d90438c6e2f5dcd1d28d92d3be37a558dda9d74a56055dd5cfe899d8d3cd3ca3f8c6dd189d8889094fb59 WHIRLPOOL 45295276a83917d778553c68af91bc4d1cba6efc70b7d6621dd3ea2f59c6722e088cebfbeccef64e118fe921e42d482a0f227ca3a3261733ffb3262a93e40b8f
AUX aufs-util-31.patch 852 SHA256 8729b765bf48143a12e8038b4141a27e24ab72f0dee2a60c1b1ac01e58dbcbd0 SHA512 f1a5bebf04f7d6d9a5c61aa81b4cb93e59d669167cffe15d65592a33fa67f7967f116b8b2d5aeb85b22c1cd8914ad382f765c24753ea9a094858753e659f8f17 WHIRLPOOL abe7ee0c5ad9076e49b180d27648b0f1042c175fa5cb5bb861440432a16d839e8b11c5bda0e748dd2a1bf04aec931f1089272e0bb793d27356f7de2008ae2d05
AUX aufs3-base-0.patch 2711 SHA256 4d6e669f9bebc301d0acf3e0dedaaff84aaa19ef7633da3c11cc3430d232ce86 SHA512 4736efcbb130516341305db5ef05ad041d7e29b13cc65f5164481f4ca11e2d4599684564965289e8f9028e0ff3db6b9a5249b90936997ee67531af961f872d43 WHIRLPOOL d584edda240b3b710c05dca1ae9689d6a18a4e57db84409c6056d3932544145edc098fb668ce29ef8fe589a5852fbbf4d6a89f14867610242bd6af4ac68b14aa
AUX aufs3-base-1.patch 2734 SHA256 70c4c17b12ad6edb7e7f29f1643c0348fd8a961fc7f960740cb4d17f3e380e08 SHA512 26c4a5bc2789e5d7d4ee8a940ab8978873ef65aca553a4ea4e3ec5476afcce1d26a8a686534c64ca3ac51fda9445beb7d2b4afc0c6bca8fd0b8562f96e211f0f WHIRLPOOL 0d0ae1f51d96a333e73217c17bd68e3ca1a9a9ba68fe42ad4062d174dd529a4b13e5ce2effe1b3140e449aa02c39dfa99d93c1c0a7a6e4e12bbd41ddf29e5af1
@@ -59,18 +75,20 @@ DIST aufs3-3_p20120813.tar.xz 1594656 SHA256 549b496e42b96d05e428a8deb5f1fc6c3dc
DIST aufs3-3_p20121015.tar.xz 1630636 SHA256 0fb39ec5cc3f96dabc4d907ecb96f13be7377bbff011d7e4d2d909dad59a3d86 SHA512 4621408a3289c847232c1c5dc0ab72a0f282e387ce2e91a147f1f620aaa9a782be4d27ca7f84e3dd890379062c77d617e9db9af53d3a81f8774c90dc44e7d36e WHIRLPOOL 48105aacd40d9ef113813eb62e18f946df3e0fca7d60d394b260d670ff11576f75ba4fb8033dbc27dc73416f67dfc2c4d59f10261f7e654f1e07c2dd80c1aeda
DIST aufs3-3_p20121112.tar.xz 1721960 SHA256 f9189e971b49cf0dc038a1567338e502e0f822a9c004836f083c7be201f95ac2 SHA512 6ebaf776e201a35a8d1b7b976575364b562ffc7921775a137b5751ab97cb40f4477f8b253511bac54149d5aa2d751e973964530c80e6c3205219d86662f1aeed WHIRLPOOL ae9b01074542e57ab4b3761f25696995bb5c82632f7faf8ff84a0b03a55370648c23542f2e750eb28ce06ab353bdce5bf5819144b3473875348dacc52bae2010
DIST aufs3-3_p20121129.tar.xz 1798460 SHA256 7c5a65e22d328ca9b1c99800af1df297b46310acb5614fa1a994ae2c44e1242a SHA512 e20106759ede87d4b7cd12c4b1785c13aa2fcb10aef65616e60da6356fad3af5c6520dbfbfeee59c013e64b695eba21258570564008cb4f3bcc5a0270e2d7537 WHIRLPOOL beff80992818b195440edf8abb1cced44c3857fe96a886db358d3d999c1e657deedaabfaa941850feb786e9df1e689865c050ee7ee1c9dba7b973cfced7a4d2b
+DIST aufs3-3_p20121210.tar.xz 1932988 SHA256 931488f2880d2ea26108328777d56ab0ad56764af15f3094fcc02263f9b75e4a SHA512 436719a0a92ca9732edbca19953d586ae3517c1884965ad4e2fccb2638065a51086184e4a0fd1abe1039b8345b2c19b7c5949468c978570e9517549459566c4d WHIRLPOOL d0bdf0c10217dce7dd255f8be7f53b87ce77d403ae099ad87a3ba2dcec107d39e408232501c997baaa3d37921922f2d34b6b62e9fe8af4ab4ce52712148b8072
EBUILD aufs3-3_p20120430.ebuild 4531 SHA256 ff74fd2cd6511cc91b4f1af072bb483edc32d8c9cb1541bac7e56f2f7f530154 SHA512 6a537d19010be40eaeef1eb4109156f959e53852260ff13204e4a2ff078e2a2c17c54d9d2c10a48371d998585615f0f2742e425d45c0883e241ec8def4072ab6 WHIRLPOOL cf9fabefa3d9dfd36d74b663ea284ee816307b4fbba1adf5b5a59cae412173989b08567702aec2b93b3722b11c5f856c7a8e4656bb5034d09b43d9e3cc72cab7
EBUILD aufs3-3_p20120813-r1.ebuild 4732 SHA256 22aa674f8026c6e9f665cf5133f0fe8ea348e325850fb8a4e17f42cd220c3666 SHA512 0f44c4d1450aa38d4ea027bb6d0cc52d27973c01ed50e7446fc6fded5264b9db98c325e69b242f36b4ad373f4f8197faef0549b88543f3bfbf85a85285710595 WHIRLPOOL 754fb2f60c7c6a4304c5616c5b86a50a3cef2697d550c86b6a8715674cacc9779ea33b127c7574b546ae06005ba42c30b0f9038b087b3b811d5d5b97aca485c3
EBUILD aufs3-3_p20121015-r1.ebuild 4751 SHA256 2973e6c7ddafa97b873222b5cf9dde4093afded77ab27c01449e54af7dd8b130 SHA512 92384dda3fda9d4ff525246d37fb34bd38de7945833af9e25a2bd99b12573c1976d01ba5f01423017f3fea540f60e796628d4809b3a93a786dc4da0095aef8ac WHIRLPOOL b209374cd619a04d3f13c00f84ed0e69fa32d1e3bf6bd07ccd2a13ba6320cc1b1a7f4cdd01eb6eef90711a4243bb843cad8e72083bd63f57bc6070344a85677e
EBUILD aufs3-3_p20121015.ebuild 4746 SHA256 09dd568675e5b1dc146dfa91b2f6dbbcfd46e35f8a3e58f6a5e0679de624b83d SHA512 e7ce166615dbba20818d56c89fda13c9e74540f7efeb4261fb33effa32eaaf7eb712d7c7a8d9a395eb4d98b53fd9c31c96fa3fffcbe829176b42731d140ffe0b WHIRLPOOL a9bb1318de0d3e304953e909739dd0af142a025300b4d99b62728487f9b9480ebd4aab0a0bfc99ad7982e59edb05177184b7b57ada716d9aad22ad2e514270a4
EBUILD aufs3-3_p20121112.ebuild 4778 SHA256 e37935bc08f5dca00dd1683a3a3501574ea1f69bf3f19bb98407166f08af4070 SHA512 7677610c9c24a28d38e1b609664941f8677417b4b50b98ad881d44dd8a5f98e16300ba4b9ac604f3ee6f0a4966f328285953168720f8fc4c25be7461100aa432 WHIRLPOOL 98284efec5ab5ada818e232b54e4ec86857e73e2ed6e87ce6e8ae5190074ecaaf79da940ed4627b07b312bf08242164ea9889a5c046c65d8892d792b80f88667
EBUILD aufs3-3_p20121129.ebuild 4811 SHA256 dce7935a899e52761e38a83a0a539556aa0618acd61a4e89370064e71f62115b SHA512 d2d7bb826ad91630abce021535f526679d8e88f0a3d513e0e251020e5bb5f84dccd4ef8d008c6e360e053ae9204c2ac779985397c0fc792bc16ac89701c05875 WHIRLPOOL fa0e6ac9284b29c4cf8f377e8f3cf18fe712875a9d65fc95a894853b3dfff05d5302c585db1a0e64033d78eb20f72173d5580b38df18cf096136767e44b6074e
-MISC ChangeLog 9554 SHA256 d6891386abfbf46a5ea0f069cee9855f761e37eb1e7f84139a963bd8ee8c6a86 SHA512 a1896e273e65a3b849d7cefae0f02e76c257e127cc4c722212cb8891ce6dd1690244ae3870a76995f90c6fe5e3fd2ff94ad9d413bca48858ad4419d9c774527e WHIRLPOOL 0a83a8c5e88f73d612bf883d461ad9e2637ab57a7e71c2f7a482752bc06888957fc8c6a79d17ec8a95f1f6ba046e1e4ab34de7f7248446510420cf7e82651be1
+EBUILD aufs3-3_p20121210.ebuild 4811 SHA256 a164360f4bdc66daedfc920c0da44f3bb4c634f40cdf97a594eaf2ac26e68c13 SHA512 48f59b70e3950aa8b4768a73150c69f0739b1705377b370c10416ad7b29510a7e3c096e498ee90e6ad058c5282e23f5d98a285aa85ed48c379124eb4f57d760e WHIRLPOOL 6f521f88952e94dc69fe81925f3101f9d695dbeda2bdef542cb895754378dae0affc60b18b952f439d97631d58e49ea1370d4756f76e9149e576215c85af0a73
+MISC ChangeLog 10390 SHA256 7aeb46bb0c24992afd34bfc199e047bfaa2f89ae751ec73d6be4d9ebcd30d790 SHA512 94de9d5b69aca31cb010843d879b942fe0f5f1213e7df331b1e531b82b8421937aac8fff99b44069c394bb5c08e965dcb2befdffd6b0374a1c8deca78ce694b4 WHIRLPOOL 29cd6c50fc6fd5bf78bd0803bd6ead600c4b574b804445addfc6da69351a05a05215deee5859d6e86aae5539e85bd7f2871ed1af88eac23272d0e291e3fcfd5e
MISC metadata.xml 695 SHA256 392aa71aa647a47a8508fb17251127a18ed54f25c6887832295b8d0f8f78740c SHA512 996cb7b77f86f080f710e143fda61b78e248804ab327bec57d1bcd33600cc60b3aedabad888b30edc36805e7edb238e470531b56bc914c2b0bfad3fe5613bd07 WHIRLPOOL 6c0d34cd5223d0638838916815e5b13475f29a69fb53af16f582aec603be66c6e9336edb2990bf675c6e64df00553de59eca44e4c698a9e4ae9732bae43dd263
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
-iEYEAREIAAYFAlC/TicACgkQgAnW8HDreRZbwQCglsNbd8M8Ra3wg3SUh0yHwjBa
-/pMAmgNiDniebj5Ygbn84W0oJTWW9RVl
-=IOeF
+iEYEAREIAAYFAlDFl/YACgkQgAnW8HDreRb56ACcD3UKzDwvSYydXG8cN9ZLx03n
+OsgAniJJyeMZEeKamSDTYSFmdR6nDBbY
+=w/ui
-----END PGP SIGNATURE-----
diff --git a/sys-fs/aufs3/aufs3-3_p20121210.ebuild b/sys-fs/aufs3/aufs3-3_p20121210.ebuild
new file mode 100644
index 000000000000..1300aac799d4
--- /dev/null
+++ b/sys-fs/aufs3/aufs3-3_p20121210.ebuild
@@ -0,0 +1,149 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/aufs3/aufs3-3_p20121210.ebuild,v 1.1 2012/12/10 08:06:13 jlec Exp $
+
+EAPI=4
+
+inherit eutils flag-o-matic linux-mod multilib toolchain-funcs
+
+AUFS_VERSION="${PV%%_p*}"
+# highest branch version
+PATCH_MAX_VER=6
+# highest supported version
+KERN_MAX_VER=7
+# highest util branch version
+UTIL_MAX_VER=0
+
+DESCRIPTION="An entirely re-designed and re-implemented Unionfs"
+HOMEPAGE="http://aufs.sourceforge.net/"
+SRC_URI="http://dev.gentoo.org/~jlec/distfiles/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug doc fuse pax_kernel hfs inotify kernel-patch nfs ramfs"
+
+DEPEND="dev-vcs/git"
+RDEPEND="
+ !sys-fs/aufs
+ !sys-fs/aufs2"
+
+S="${WORKDIR}"/${P}/${PN}-standalone
+
+MODULE_NAMES="aufs(misc:${S})"
+
+pkg_setup() {
+ CONFIG_CHECK+=" ~EXPERIMENTAL !AUFS_FS"
+ use inotify && CONFIG_CHECK+=" ~FSNOTIFY"
+ use nfs && CONFIG_CHECK+=" EXPORTFS"
+ use fuse && CONFIG_CHECK+=" ~FUSE_FS"
+ use hfs && CONFIG_CHECK+=" ~HFSPLUS_FS"
+ use pax_kernel && CONFIG_CHECK+=" PAX" && ERROR_PAX="Please use hardened sources"
+
+ # this is needed so merging a binpkg ${PN} is possible w/out a kernel unpacked on the system
+ [ -n "$PKG_SETUP_HAS_BEEN_RAN" ] && return
+
+ get_version
+ kernel_is lt 3 0 0 && die "kernel too old, Please use sys-fs/aufs2"
+ kernel_is gt 3 ${KERN_MAX_VER} 99 && die "kernel too new"
+
+ linux-mod_pkg_setup
+
+ if [[ "${KV_MINOR}" -gt "${PATCH_MAX_VER}" ]]; then
+ PATCH_BRANCH="x-rcN"
+ else
+ PATCH_BRANCH="${KV_MINOR}"
+ fi
+
+ if [[ "${PATCH_BRANCH}" == "x-rcN" ]]; then
+ UTIL_BRANCH="x-rcN"
+ elif [[ "${KV_MINOR}" -gt "${UTIL_MAX_VER}" ]]; then
+ UTIL_BRANCH="${UTIL_MAX_VER}"
+ else
+ UTIL_BRANCH="${KV_MINOR}"
+ fi
+
+ if ! ( patch -p1 --dry-run --force -R -d ${KV_DIR} < "${FILESDIR}"/${PV}/${PN}-standalone-${PATCH_BRANCH}.patch >/dev/null && \
+ patch -p1 --dry-run --force -R -d ${KV_DIR} < "${FILESDIR}"/${PV}/${PN}-base-${PATCH_BRANCH}.patch >/dev/null ); then
+ if use kernel-patch; then
+ cd ${KV_DIR}
+ ewarn "Patching your kernel..."
+ patch --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} < "${FILESDIR}"/${PV}/${PN}-standalone-${PATCH_BRANCH}.patch >/dev/null
+ patch --no-backup-if-mismatch --force -p1 -R -d ${KV_DIR} < "${FILESDIR}"/${PV}/${PN}-base-${PATCH_BRANCH}.patch >/dev/null
+ epatch "${FILESDIR}"/${PV}/${PN}-{base,standalone}-${PATCH_BRANCH}.patch
+ ewarn "You need to compile your kernel with the applied patch"
+ ewarn "to be able to load and use the aufs kernel module"
+ else
+ eerror "You need to apply a patch to your kernel to compile and run the ${PN} module"
+ eerror "Either enable the kernel-patch useflag to do it with this ebuild"
+ eerror "or apply ${FILESDIR}/${PN}-base-${PATCH_BRANCH}.patch and"
+ eerror "${FILESDIR}/${PN}-standalone-${PATCH_BRANCH}.patch by hand"
+ die "missing kernel patch, please apply it first"
+ fi
+ fi
+ export PKG_SETUP_HAS_BEEN_RAN=1
+}
+
+set_config() {
+ for option in $*; do
+ grep -q "^CONFIG_AUFS_${option} =" config.mk || die "${option} is not a valid config option"
+ sed "/^CONFIG_AUFS_${option}/s:=:= y:g" -i config.mk || die
+ done
+}
+
+src_prepare() {
+ local module_branch=origin/${PN}.${PATCH_BRANCH}
+ local util_branch=origin/${PN}.${UTIL_BRANCH}
+
+ einfo "Using for module creation branch ${module_branch}"
+ git checkout -q -b local-gentoo ${module_branch} || die
+
+ # All config options to off
+ sed "s:= y:=:g" -i config.mk || die
+
+ set_config RDU BRANCH_MAX_127 SBILIST
+
+ use debug && set_config DEBUG
+ use fuse && set_config BR_FUSE POLL
+ use hfs && set_config BR_HFSPLUS
+ use inotify && set_config HNOTIFY HFSNOTIFY
+ use nfs && set_config EXPORT
+ use nfs && ( use amd64 || use ppc64 ) && set_config INO_T_64
+ use ramfs && set_config BR_RAMFS
+
+ use pax_kernel && epatch "${FILESDIR}"/pax-2.patch
+
+ sed -i "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" Makefile || die
+ sed -i "s:__user::g" include/linux/aufs_type.h || die
+
+ cd "${WORKDIR}"/${P}/${PN/3}-util
+
+ einfo "Using for utils building branch ${util_branch}"
+ git checkout -b local-gentoo ${util_branch} || die
+ sed -i "/LDFLAGS += -static -s/d" Makefile || die
+ sed -i -e "s:m 644 -s:m 644:g" -e "s:/usr/lib:/usr/$(get_libdir):g" libau/Makefile || die
+}
+
+src_compile() {
+ local ARCH=x86
+
+ emake CC=$(tc-getCC) LD=$(tc-getLD) LDFLAGS="$(raw-ldflags)" ARCH=$(tc-arch-kernel) CONFIG_AUFS_FS=m KDIR=${KV_OUT_DIR}
+
+ cd "${WORKDIR}"/${P}/${PN/3}-util
+ emake CC=$(tc-getCC) AR=$(tc-getAR) KDIR=${KV_OUT_DIR} C_INCLUDE_PATH="${S}"/include
+}
+
+src_install() {
+ linux-mod_src_install
+
+ insinto /usr/share/doc/${PF}
+
+ use doc && doins -r Documentation
+
+ dodoc Documentation/filesystems/aufs/README
+
+ cd "${WORKDIR}"/${P}/${PN/3}-util
+ emake DESTDIR="${D}" KDIR=${KV_OUT_DIR} install
+
+ newdoc README README-utils
+}
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-base-0.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-base-0.patch
new file mode 100644
index 000000000000..7fa7db4ee6c7
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-base-0.patch
@@ -0,0 +1,70 @@
+aufs3.0 base patch
+
+diff --git a/fs/namei.c b/fs/namei.c
+index 14ab8d3..eb4aef1 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1697,7 +1697,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
+ * needs parent already locked. Doesn't follow mounts.
+ * SMP-safe.
+ */
+-static struct dentry *lookup_hash(struct nameidata *nd)
++struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
+diff --git a/fs/splice.c b/fs/splice.c
+index aa866d3..19afec6 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1085,8 +1085,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+ * Attempt to initiate a splice from pipe to file.
+ */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+- loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags)
+ {
+ ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ loff_t *, size_t, unsigned int);
+@@ -1113,9 +1113,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+ */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+- struct pipe_inode_info *pipe, size_t len,
+- unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags)
+ {
+ ssize_t (*splice_read)(struct file *, loff_t *,
+ struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/namei.h b/include/linux/namei.h
+index eba45ea..21ed6c9 100644
+--- a/include/linux/namei.h
++++ b/include/linux/namei.h
+@@ -82,6 +82,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
+ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
+ int (*open)(struct inode *, struct file *));
+
++extern struct dentry *lookup_hash(struct nameidata *nd);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+
+ extern int follow_down_one(struct path *);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 997c3b4..be9a153 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -89,4 +89,10 @@ extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *);
+ extern void splice_shrink_spd(struct pipe_inode_info *,
+ struct splice_pipe_desc *);
+
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags);
++
+ #endif
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-base-1.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-base-1.patch
new file mode 100644
index 000000000000..928c3cec768c
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-base-1.patch
@@ -0,0 +1,70 @@
+aufs3.1 base patch
+
+diff --git a/fs/namei.c b/fs/namei.c
+index 0b3138d..8edad02 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1748,7 +1748,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
+ * needs parent already locked. Doesn't follow mounts.
+ * SMP-safe.
+ */
+-static struct dentry *lookup_hash(struct nameidata *nd)
++struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
+diff --git a/fs/splice.c b/fs/splice.c
+index fa2defa..e3569b0 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1085,8 +1085,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+ * Attempt to initiate a splice from pipe to file.
+ */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+- loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags)
+ {
+ ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ loff_t *, size_t, unsigned int);
+@@ -1113,9 +1113,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+ */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+- struct pipe_inode_info *pipe, size_t len,
+- unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags)
+ {
+ ssize_t (*splice_read)(struct file *, loff_t *,
+ struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/namei.h b/include/linux/namei.h
+index 409328d..40afdc0 100644
+--- a/include/linux/namei.h
++++ b/include/linux/namei.h
+@@ -84,6 +84,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
+ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
+ int (*open)(struct inode *, struct file *));
+
++extern struct dentry *lookup_hash(struct nameidata *nd);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+
+ extern int follow_down_one(struct path *);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 26e5b61..3ffef2f 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct pipe_inode_info *,
+ extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
+
+ extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
++
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags);
+ #endif
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-base-2.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-base-2.patch
new file mode 100644
index 000000000000..ac30c8db9033
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-base-2.patch
@@ -0,0 +1,70 @@
+aufs3.2 base patch
+
+diff --git a/fs/namei.c b/fs/namei.c
+index 5008f01..4cc94cf 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1753,7 +1753,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
+ * needs parent already locked. Doesn't follow mounts.
+ * SMP-safe.
+ */
+-static struct dentry *lookup_hash(struct nameidata *nd)
++struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
+diff --git a/fs/splice.c b/fs/splice.c
+index fa2defa..e3569b0 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1085,8 +1085,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+ * Attempt to initiate a splice from pipe to file.
+ */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+- loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags)
+ {
+ ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ loff_t *, size_t, unsigned int);
+@@ -1113,9 +1113,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+ */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+- struct pipe_inode_info *pipe, size_t len,
+- unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags)
+ {
+ ssize_t (*splice_read)(struct file *, loff_t *,
+ struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/namei.h b/include/linux/namei.h
+index ffc0213..ef35a31 100644
+--- a/include/linux/namei.h
++++ b/include/linux/namei.h
+@@ -85,6 +85,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
+ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
+ int (*open)(struct inode *, struct file *));
+
++extern struct dentry *lookup_hash(struct nameidata *nd);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+
+ extern int follow_down_one(struct path *);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 26e5b61..3ffef2f 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct pipe_inode_info *,
+ extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
+
+ extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
++
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags);
+ #endif
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-base-3.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-base-3.patch
new file mode 100644
index 000000000000..99a63d024c3c
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-base-3.patch
@@ -0,0 +1,70 @@
+aufs3.3 base patch
+
+diff --git a/fs/namei.c b/fs/namei.c
+index 46ea9cc..f2dcf8d 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1781,7 +1781,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
+ * needs parent already locked. Doesn't follow mounts.
+ * SMP-safe.
+ */
+-static struct dentry *lookup_hash(struct nameidata *nd)
++struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
+diff --git a/fs/splice.c b/fs/splice.c
+index 1ec0493..c599f73 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1084,8 +1084,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+ * Attempt to initiate a splice from pipe to file.
+ */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+- loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags)
+ {
+ ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ loff_t *, size_t, unsigned int);
+@@ -1112,9 +1112,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+ */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+- struct pipe_inode_info *pipe, size_t len,
+- unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags)
+ {
+ ssize_t (*splice_read)(struct file *, loff_t *,
+ struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/namei.h b/include/linux/namei.h
+index ffc0213..ef35a31 100644
+--- a/include/linux/namei.h
++++ b/include/linux/namei.h
+@@ -85,6 +85,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
+ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
+ int (*open)(struct inode *, struct file *));
+
++extern struct dentry *lookup_hash(struct nameidata *nd);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+
+ extern int follow_down_one(struct path *);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 26e5b61..3ffef2f 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct pipe_inode_info *,
+ extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
+
+ extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
++
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags);
+ #endif
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-base-4.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-base-4.patch
new file mode 100644
index 000000000000..d639d79bd228
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-base-4.patch
@@ -0,0 +1,70 @@
+aufs3.4 base patch
+
+diff --git a/fs/namei.c b/fs/namei.c
+index c427919..7ff959b 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1831,7 +1831,7 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt,
+ * needs parent already locked. Doesn't follow mounts.
+ * SMP-safe.
+ */
+-static struct dentry *lookup_hash(struct nameidata *nd)
++struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
+diff --git a/fs/splice.c b/fs/splice.c
+index f847684..f871233 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1084,8 +1084,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+ * Attempt to initiate a splice from pipe to file.
+ */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+- loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags)
+ {
+ ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ loff_t *, size_t, unsigned int);
+@@ -1112,9 +1112,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+ */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+- struct pipe_inode_info *pipe, size_t len,
+- unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags)
+ {
+ ssize_t (*splice_read)(struct file *, loff_t *,
+ struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/namei.h b/include/linux/namei.h
+index ffc0213..ef35a31 100644
+--- a/include/linux/namei.h
++++ b/include/linux/namei.h
+@@ -85,6 +85,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
+ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
+ int (*open)(struct inode *, struct file *));
+
++extern struct dentry *lookup_hash(struct nameidata *nd);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+
+ extern int follow_down_one(struct path *);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 26e5b61..3ffef2f 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct pipe_inode_info *,
+ extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
+
+ extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
++
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags);
+ #endif
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-base-5.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-base-5.patch
new file mode 100644
index 000000000000..94a6d9aea862
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-base-5.patch
@@ -0,0 +1,95 @@
+aufs3.5 base patch
+
+diff --git a/fs/inode.c b/fs/inode.c
+index c99163b..7f772fd 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -1491,7 +1491,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
+ * This does the actual work of updating an inodes time or version. Must have
+ * had called mnt_want_write() before calling this.
+ */
+-static int update_time(struct inode *inode, struct timespec *time, int flags)
++int update_time(struct inode *inode, struct timespec *time, int flags)
+ {
+ if (inode->i_op->update_time)
+ return inode->i_op->update_time(inode, time, flags);
+diff --git a/fs/namei.c b/fs/namei.c
+index 7d69419..18c9782 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1864,7 +1864,7 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt,
+ * needs parent already locked. Doesn't follow mounts.
+ * SMP-safe.
+ */
+-static struct dentry *lookup_hash(struct nameidata *nd)
++struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
+diff --git a/fs/splice.c b/fs/splice.c
+index 7bf08fa..e3c40b5 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1090,8 +1090,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+ * Attempt to initiate a splice from pipe to file.
+ */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+- loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags)
+ {
+ ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ loff_t *, size_t, unsigned int);
+@@ -1118,9 +1118,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+ */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+- struct pipe_inode_info *pipe, size_t len,
+- unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags)
+ {
+ ssize_t (*splice_read)(struct file *, loff_t *,
+ struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/fs.h b/include/linux/fs.h
+index 17fd887..9c75a47 100644
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -2591,6 +2591,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
+ extern int inode_newsize_ok(const struct inode *, loff_t offset);
+ extern void setattr_copy(struct inode *inode, const struct iattr *attr);
+
++extern int update_time(struct inode *, struct timespec *, int);
+ extern int file_update_time(struct file *file);
+
+ extern int generic_show_options(struct seq_file *m, struct dentry *root);
+diff --git a/include/linux/namei.h b/include/linux/namei.h
+index ffc0213..ef35a31 100644
+--- a/include/linux/namei.h
++++ b/include/linux/namei.h
+@@ -85,6 +85,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
+ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
+ int (*open)(struct inode *, struct file *));
+
++extern struct dentry *lookup_hash(struct nameidata *nd);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+
+ extern int follow_down_one(struct path *);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 09a545a..1ac5727 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
+ extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
+
+ extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
++
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags);
+ #endif
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-base-6.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-base-6.patch
new file mode 100644
index 000000000000..adb9ab7ccfdb
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-base-6.patch
@@ -0,0 +1,70 @@
+aufs3.6 base patch
+
+diff --git a/fs/inode.c b/fs/inode.c
+index ac8d904..7b2c8fa 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -1491,7 +1491,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
+ * This does the actual work of updating an inodes time or version. Must have
+ * had called mnt_want_write() before calling this.
+ */
+-static int update_time(struct inode *inode, struct timespec *time, int flags)
++int update_time(struct inode *inode, struct timespec *time, int flags)
+ {
+ if (inode->i_op->update_time)
+ return inode->i_op->update_time(inode, time, flags);
+diff --git a/fs/splice.c b/fs/splice.c
+index 41514dd..663b402 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1093,8 +1093,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+ * Attempt to initiate a splice from pipe to file.
+ */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+- loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags)
+ {
+ ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ loff_t *, size_t, unsigned int);
+@@ -1121,9 +1121,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+ */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+- struct pipe_inode_info *pipe, size_t len,
+- unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags)
+ {
+ ssize_t (*splice_read)(struct file *, loff_t *,
+ struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/fs.h b/include/linux/fs.h
+index aa11047..9116d2e 100644
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -2741,6 +2741,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
+ extern int inode_newsize_ok(const struct inode *, loff_t offset);
+ extern void setattr_copy(struct inode *inode, const struct iattr *attr);
+
++extern int update_time(struct inode *, struct timespec *, int);
+ extern int file_update_time(struct file *file);
+
+ extern int generic_show_options(struct seq_file *m, struct dentry *root);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 09a545a..1ac5727 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
+ extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
+
+ extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
++
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags);
+ #endif
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-base-x-rcN.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-base-x-rcN.patch
new file mode 100644
index 000000000000..4514a59ec444
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-base-x-rcN.patch
@@ -0,0 +1,83 @@
+aufs3.x-rcN base patch
+
+diff --git a/fs/file_table.c b/fs/file_table.c
+index a72bf9d..dac6792 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
+@@ -36,7 +36,7 @@ struct files_stat_struct files_stat = {
+ .max_files = NR_FILE
+ };
+
+-DEFINE_STATIC_LGLOCK(files_lglock);
++DEFINE_LGLOCK(files_lglock);
+
+ /* SLAB cache for file structures */
+ static struct kmem_cache *filp_cachep __read_mostly;
+diff --git a/fs/inode.c b/fs/inode.c
+index b03c719..ee497f9 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -1491,7 +1491,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
+ * This does the actual work of updating an inodes time or version. Must have
+ * had called mnt_want_write() before calling this.
+ */
+-static int update_time(struct inode *inode, struct timespec *time, int flags)
++int update_time(struct inode *inode, struct timespec *time, int flags)
+ {
+ if (inode->i_op->update_time)
+ return inode->i_op->update_time(inode, time, flags);
+diff --git a/fs/splice.c b/fs/splice.c
+index 13e5b47..f185c6c 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1093,8 +1093,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+ * Attempt to initiate a splice from pipe to file.
+ */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+- loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags)
+ {
+ ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ loff_t *, size_t, unsigned int);
+@@ -1121,9 +1121,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+ */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+- struct pipe_inode_info *pipe, size_t len,
+- unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags)
+ {
+ ssize_t (*splice_read)(struct file *, loff_t *,
+ struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/include/linux/fs.h b/include/linux/fs.h
+index b33cfc9..963a61b 100644
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -2558,6 +2558,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
+ extern int inode_newsize_ok(const struct inode *, loff_t offset);
+ extern void setattr_copy(struct inode *inode, const struct iattr *attr);
+
++extern int update_time(struct inode *, struct timespec *, int);
+ extern int file_update_time(struct file *file);
+
+ extern int generic_show_options(struct seq_file *m, struct dentry *root);
+diff --git a/include/linux/splice.h b/include/linux/splice.h
+index 09a545a..1ac5727 100644
+--- a/include/linux/splice.h
++++ b/include/linux/splice.h
+@@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
+ extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
+
+ extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
++
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags);
+ #endif
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-0.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-0.patch
new file mode 100644
index 000000000000..ada3df9d4b06
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-0.patch
@@ -0,0 +1,257 @@
+aufs3.0 standalone patch
+
+diff --git a/fs/file_table.c b/fs/file_table.c
+index 01e4c1e..0e800e2 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
+@@ -443,6 +443,8 @@ void file_sb_list_del(struct file *file)
+ }
+ }
+
++EXPORT_SYMBOL(file_sb_list_del);
++
+ #ifdef CONFIG_SMP
+
+ /*
+diff --git a/fs/inode.c b/fs/inode.c
+index 43566d1..4291eae 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -69,6 +69,7 @@ static DEFINE_SPINLOCK(inode_lru_lock);
+
+ __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
+ __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_wb_list_lock);
++EXPORT_SYMBOL(inode_sb_list_lock);
+
+ /*
+ * iprune_sem provides exclusion between the icache shrinking and the
+diff --git a/fs/namei.c b/fs/namei.c
+index eb4aef1..66d04c6 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -365,6 +365,7 @@ int deny_write_access(struct file * file)
+
+ return 0;
+ }
++EXPORT_SYMBOL(deny_write_access);
+
+ /**
+ * path_get - get a reference to a path
+@@ -1701,6 +1702,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
++EXPORT_SYMBOL(lookup_hash);
+
+ /**
+ * lookup_one_len - filesystem helper to lookup single pathname component
+diff --git a/fs/namespace.c b/fs/namespace.c
+index fe59bd1..7d3843f 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -1508,6 +1508,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+ }
+ return 0;
+ }
++EXPORT_SYMBOL(iterate_mounts);
+
+ static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end)
+ {
+diff --git a/fs/notify/group.c b/fs/notify/group.c
+index d309f38..f0e9568 100644
+--- a/fs/notify/group.c
++++ b/fs/notify/group.c
+@@ -22,6 +22,7 @@
+ #include <linux/srcu.h>
+ #include <linux/rculist.h>
+ #include <linux/wait.h>
++#include <linux/module.h>
+
+ #include <linux/fsnotify_backend.h>
+ #include "fsnotify.h"
+@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
+ if (atomic_dec_and_test(&group->refcnt))
+ fsnotify_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_put_group);
+
+ /*
+ * Create a new fsnotify_group and hold a reference for the group returned.
+@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
+
+ return group;
+ }
++EXPORT_SYMBOL(fsnotify_alloc_group);
+diff --git a/fs/notify/mark.c b/fs/notify/mark.c
+index 252ab1f..2199b9b 100644
+--- a/fs/notify/mark.c
++++ b/fs/notify/mark.c
+@@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
+ if (atomic_dec_and_test(&mark->refcnt))
+ mark->free_mark(mark);
+ }
++EXPORT_SYMBOL(fsnotify_put_mark);
+
+ /*
+ * Any time a mark is getting freed we end up here.
+@@ -189,6 +190,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
+ if (unlikely(atomic_dec_and_test(&group->num_marks)))
+ fsnotify_final_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_destroy_mark);
+
+ void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
+ {
+@@ -276,6 +278,7 @@ err:
+
+ return ret;
+ }
++EXPORT_SYMBOL(fsnotify_add_mark);
+
+ /*
+ * clear any marks in a group in which mark->flags & flags is true
+@@ -331,6 +334,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+ atomic_set(&mark->refcnt, 1);
+ mark->free_mark = free_mark;
+ }
++EXPORT_SYMBOL(fsnotify_init_mark);
+
+ static int fsnotify_mark_destroy(void *ignored)
+ {
+diff --git a/fs/open.c b/fs/open.c
+index b52cf01..c1b341c 100644
+--- a/fs/open.c
++++ b/fs/open.c
+@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
+ mutex_unlock(&dentry->d_inode->i_mutex);
+ return ret;
+ }
++EXPORT_SYMBOL(do_truncate);
+
+ static long do_sys_truncate(const char __user *pathname, loff_t length)
+ {
+diff --git a/fs/splice.c b/fs/splice.c
+index 19afec6..11f07f86 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1109,6 +1109,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+
+ return splice_write(pipe, out, ppos, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_from);
+
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+@@ -1135,6 +1136,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+
+ return splice_read(in, ppos, pipe, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_to);
+
+ /**
+ * splice_direct_to_actor - splices data directly between two non-pipes
+diff --git a/security/commoncap.c b/security/commoncap.c
+index a93b3b7..024282c 100644
+--- a/security/commoncap.c
++++ b/security/commoncap.c
+@@ -971,3 +971,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
+ }
+ return ret;
+ }
++EXPORT_SYMBOL(cap_file_mmap);
+diff --git a/security/device_cgroup.c b/security/device_cgroup.c
+index 1be6826..215278c 100644
+--- a/security/device_cgroup.c
++++ b/security/device_cgroup.c
+@@ -508,6 +508,7 @@ found:
+
+ return -EPERM;
+ }
++EXPORT_SYMBOL(__devcgroup_inode_permission);
+
+ int devcgroup_inode_mknod(int mode, dev_t dev)
+ {
+diff --git a/security/security.c b/security/security.c
+index 4ba6d4c..9f64bb8 100644
+--- a/security/security.c
++++ b/security/security.c
+@@ -373,6 +373,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+ return 0;
+ return security_ops->path_rmdir(dir, dentry);
+ }
++EXPORT_SYMBOL(security_path_rmdir);
+
+ int security_path_unlink(struct path *dir, struct dentry *dentry)
+ {
+@@ -389,6 +390,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
+ return 0;
+ return security_ops->path_symlink(dir, dentry, old_name);
+ }
++EXPORT_SYMBOL(security_path_symlink);
+
+ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ struct dentry *new_dentry)
+@@ -397,6 +399,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ return 0;
+ return security_ops->path_link(old_dentry, new_dir, new_dentry);
+ }
++EXPORT_SYMBOL(security_path_link);
+
+ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
+ struct path *new_dir, struct dentry *new_dentry)
+@@ -415,6 +418,7 @@ int security_path_truncate(struct path *path)
+ return 0;
+ return security_ops->path_truncate(path);
+ }
++EXPORT_SYMBOL(security_path_truncate);
+
+ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
+ mode_t mode)
+@@ -423,6 +427,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
+ return 0;
+ return security_ops->path_chmod(dentry, mnt, mode);
+ }
++EXPORT_SYMBOL(security_path_chmod);
+
+ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ {
+@@ -430,6 +435,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ return 0;
+ return security_ops->path_chown(path, uid, gid);
+ }
++EXPORT_SYMBOL(security_path_chown);
+
+ int security_path_chroot(struct path *path)
+ {
+@@ -506,6 +512,7 @@ int security_inode_readlink(struct dentry *dentry)
+ return 0;
+ return security_ops->inode_readlink(dentry);
+ }
++EXPORT_SYMBOL(security_inode_readlink);
+
+ int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
+ {
+@@ -520,6 +527,7 @@ int security_inode_permission(struct inode *inode, int mask)
+ return 0;
+ return security_ops->inode_permission(inode, mask, 0);
+ }
++EXPORT_SYMBOL(security_inode_permission);
+
+ int security_inode_exec_permission(struct inode *inode, unsigned int flags)
+ {
+@@ -626,6 +634,7 @@ int security_file_permission(struct file *file, int mask)
+
+ return fsnotify_perm(file, mask);
+ }
++EXPORT_SYMBOL(security_file_permission);
+
+ int security_file_alloc(struct file *file)
+ {
+@@ -653,6 +662,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
+ return ret;
+ return ima_file_mmap(file, prot);
+ }
++EXPORT_SYMBOL(security_file_mmap);
+
+ int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
+ unsigned long prot)
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-1.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-1.patch
new file mode 100644
index 000000000000..72f3ae9e432b
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-1.patch
@@ -0,0 +1,249 @@
+aufs3.1 standalone patch
+
+diff --git a/fs/file_table.c b/fs/file_table.c
+index c322794..2aad244 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
+@@ -443,6 +443,8 @@ void file_sb_list_del(struct file *file)
+ }
+ }
+
++EXPORT_SYMBOL(file_sb_list_del);
++
+ #ifdef CONFIG_SMP
+
+ /*
+diff --git a/fs/inode.c b/fs/inode.c
+index ec79246..46ac6f9 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -65,6 +65,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
+ static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
+
+ __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
++EXPORT_SYMBOL(inode_sb_list_lock);
+
+ /*
+ * Empty aops. Can be used for the cases where the user does not
+diff --git a/fs/namei.c b/fs/namei.c
+index 8edad02..50e8718 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1752,6 +1752,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
++EXPORT_SYMBOL(lookup_hash);
+
+ /**
+ * lookup_one_len - filesystem helper to lookup single pathname component
+diff --git a/fs/namespace.c b/fs/namespace.c
+index b4febb2..598a308 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -1508,6 +1508,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+ }
+ return 0;
+ }
++EXPORT_SYMBOL(iterate_mounts);
+
+ static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end)
+ {
+diff --git a/fs/notify/group.c b/fs/notify/group.c
+index 63fc294..6f4adca 100644
+--- a/fs/notify/group.c
++++ b/fs/notify/group.c
+@@ -22,6 +22,7 @@
+ #include <linux/srcu.h>
+ #include <linux/rculist.h>
+ #include <linux/wait.h>
++#include <linux/module.h>
+
+ #include <linux/fsnotify_backend.h>
+ #include "fsnotify.h"
+@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
+ if (atomic_dec_and_test(&group->refcnt))
+ fsnotify_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_put_group);
+
+ /*
+ * Create a new fsnotify_group and hold a reference for the group returned.
+@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
+
+ return group;
+ }
++EXPORT_SYMBOL(fsnotify_alloc_group);
+diff --git a/fs/notify/mark.c b/fs/notify/mark.c
+index e14587d..be6533b 100644
+--- a/fs/notify/mark.c
++++ b/fs/notify/mark.c
+@@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
+ if (atomic_dec_and_test(&mark->refcnt))
+ mark->free_mark(mark);
+ }
++EXPORT_SYMBOL(fsnotify_put_mark);
+
+ /*
+ * Any time a mark is getting freed we end up here.
+@@ -189,6 +190,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
+ if (unlikely(atomic_dec_and_test(&group->num_marks)))
+ fsnotify_final_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_destroy_mark);
+
+ void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
+ {
+@@ -276,6 +278,7 @@ err:
+
+ return ret;
+ }
++EXPORT_SYMBOL(fsnotify_add_mark);
+
+ /*
+ * clear any marks in a group in which mark->flags & flags is true
+@@ -331,6 +334,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+ atomic_set(&mark->refcnt, 1);
+ mark->free_mark = free_mark;
+ }
++EXPORT_SYMBOL(fsnotify_init_mark);
+
+ static int fsnotify_mark_destroy(void *ignored)
+ {
+diff --git a/fs/open.c b/fs/open.c
+index f711921..d742fc0 100644
+--- a/fs/open.c
++++ b/fs/open.c
+@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
+ mutex_unlock(&dentry->d_inode->i_mutex);
+ return ret;
+ }
++EXPORT_SYMBOL(do_truncate);
+
+ static long do_sys_truncate(const char __user *pathname, loff_t length)
+ {
+diff --git a/fs/splice.c b/fs/splice.c
+index e3569b0..9dc07b7 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1109,6 +1109,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+
+ return splice_write(pipe, out, ppos, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_from);
+
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+@@ -1135,6 +1136,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+
+ return splice_read(in, ppos, pipe, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_to);
+
+ /**
+ * splice_direct_to_actor - splices data directly between two non-pipes
+diff --git a/security/commoncap.c b/security/commoncap.c
+index a93b3b7..024282c 100644
+--- a/security/commoncap.c
++++ b/security/commoncap.c
+@@ -971,3 +971,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
+ }
+ return ret;
+ }
++EXPORT_SYMBOL(cap_file_mmap);
+diff --git a/security/device_cgroup.c b/security/device_cgroup.c
+index 4450fbe..2c437e5 100644
+--- a/security/device_cgroup.c
++++ b/security/device_cgroup.c
+@@ -500,6 +500,7 @@ found:
+
+ return -EPERM;
+ }
++EXPORT_SYMBOL(__devcgroup_inode_permission);
+
+ int devcgroup_inode_mknod(int mode, dev_t dev)
+ {
+diff --git a/security/security.c b/security/security.c
+index d9e1533..466ee5c 100644
+--- a/security/security.c
++++ b/security/security.c
+@@ -373,6 +373,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+ return 0;
+ return security_ops->path_rmdir(dir, dentry);
+ }
++EXPORT_SYMBOL(security_path_rmdir);
+
+ int security_path_unlink(struct path *dir, struct dentry *dentry)
+ {
+@@ -389,6 +390,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
+ return 0;
+ return security_ops->path_symlink(dir, dentry, old_name);
+ }
++EXPORT_SYMBOL(security_path_symlink);
+
+ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ struct dentry *new_dentry)
+@@ -397,6 +399,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ return 0;
+ return security_ops->path_link(old_dentry, new_dir, new_dentry);
+ }
++EXPORT_SYMBOL(security_path_link);
+
+ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
+ struct path *new_dir, struct dentry *new_dentry)
+@@ -415,6 +418,7 @@ int security_path_truncate(struct path *path)
+ return 0;
+ return security_ops->path_truncate(path);
+ }
++EXPORT_SYMBOL(security_path_truncate);
+
+ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
+ mode_t mode)
+@@ -423,6 +427,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
+ return 0;
+ return security_ops->path_chmod(dentry, mnt, mode);
+ }
++EXPORT_SYMBOL(security_path_chmod);
+
+ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ {
+@@ -430,6 +435,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ return 0;
+ return security_ops->path_chown(path, uid, gid);
+ }
++EXPORT_SYMBOL(security_path_chown);
+
+ int security_path_chroot(struct path *path)
+ {
+@@ -506,6 +512,7 @@ int security_inode_readlink(struct dentry *dentry)
+ return 0;
+ return security_ops->inode_readlink(dentry);
+ }
++EXPORT_SYMBOL(security_inode_readlink);
+
+ int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
+ {
+@@ -520,6 +527,7 @@ int security_inode_permission(struct inode *inode, int mask)
+ return 0;
+ return security_ops->inode_permission(inode, mask);
+ }
++EXPORT_SYMBOL(security_inode_permission);
+
+ int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
+ {
+@@ -619,6 +627,7 @@ int security_file_permission(struct file *file, int mask)
+
+ return fsnotify_perm(file, mask);
+ }
++EXPORT_SYMBOL(security_file_permission);
+
+ int security_file_alloc(struct file *file)
+ {
+@@ -646,6 +655,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
+ return ret;
+ return ima_file_mmap(file, prot);
+ }
++EXPORT_SYMBOL(security_file_mmap);
+
+ int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
+ unsigned long prot)
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-2.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-2.patch
new file mode 100644
index 000000000000..ae897f388cb7
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-2.patch
@@ -0,0 +1,257 @@
+aufs3.2 standalone patch
+
+diff --git a/fs/file_table.c b/fs/file_table.c
+index c322794..2aad244 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
+@@ -443,6 +443,8 @@ void file_sb_list_del(struct file *file)
+ }
+ }
+
++EXPORT_SYMBOL(file_sb_list_del);
++
+ #ifdef CONFIG_SMP
+
+ /*
+diff --git a/fs/inode.c b/fs/inode.c
+index ee4e66b..728042b 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -65,6 +65,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
+ static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
+
+ __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
++EXPORT_SYMBOL(inode_sb_list_lock);
+
+ /*
+ * Empty aops. Can be used for the cases where the user does not
+diff --git a/fs/namei.c b/fs/namei.c
+index 4cc94cf..af19e30 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1757,6 +1757,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
++EXPORT_SYMBOL(lookup_hash);
+
+ /**
+ * lookup_one_len - filesystem helper to lookup single pathname component
+diff --git a/fs/namespace.c b/fs/namespace.c
+index cfc6d44..173d15a 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -1506,6 +1506,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+ }
+ return 0;
+ }
++EXPORT_SYMBOL(iterate_mounts);
+
+ static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end)
+ {
+diff --git a/fs/notify/group.c b/fs/notify/group.c
+index 63fc294..6f4adca 100644
+--- a/fs/notify/group.c
++++ b/fs/notify/group.c
+@@ -22,6 +22,7 @@
+ #include <linux/srcu.h>
+ #include <linux/rculist.h>
+ #include <linux/wait.h>
++#include <linux/module.h>
+
+ #include <linux/fsnotify_backend.h>
+ #include "fsnotify.h"
+@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
+ if (atomic_dec_and_test(&group->refcnt))
+ fsnotify_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_put_group);
+
+ /*
+ * Create a new fsnotify_group and hold a reference for the group returned.
+@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
+
+ return group;
+ }
++EXPORT_SYMBOL(fsnotify_alloc_group);
+diff --git a/fs/notify/mark.c b/fs/notify/mark.c
+index e14587d..be6533b 100644
+--- a/fs/notify/mark.c
++++ b/fs/notify/mark.c
+@@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
+ if (atomic_dec_and_test(&mark->refcnt))
+ mark->free_mark(mark);
+ }
++EXPORT_SYMBOL(fsnotify_put_mark);
+
+ /*
+ * Any time a mark is getting freed we end up here.
+@@ -189,6 +190,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
+ if (unlikely(atomic_dec_and_test(&group->num_marks)))
+ fsnotify_final_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_destroy_mark);
+
+ void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
+ {
+@@ -276,6 +278,7 @@ err:
+
+ return ret;
+ }
++EXPORT_SYMBOL(fsnotify_add_mark);
+
+ /*
+ * clear any marks in a group in which mark->flags & flags is true
+@@ -331,6 +334,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+ atomic_set(&mark->refcnt, 1);
+ mark->free_mark = free_mark;
+ }
++EXPORT_SYMBOL(fsnotify_init_mark);
+
+ static int fsnotify_mark_destroy(void *ignored)
+ {
+diff --git a/fs/open.c b/fs/open.c
+index 22c41b5..33b4033 100644
+--- a/fs/open.c
++++ b/fs/open.c
+@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
+ mutex_unlock(&dentry->d_inode->i_mutex);
+ return ret;
+ }
++EXPORT_SYMBOL(do_truncate);
+
+ static long do_sys_truncate(const char __user *pathname, loff_t length)
+ {
+diff --git a/fs/splice.c b/fs/splice.c
+index e3569b0..9dc07b7 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1109,6 +1109,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+
+ return splice_write(pipe, out, ppos, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_from);
+
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+@@ -1135,6 +1136,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+
+ return splice_read(in, ppos, pipe, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_to);
+
+ /**
+ * splice_direct_to_actor - splices data directly between two non-pipes
+diff --git a/security/commoncap.c b/security/commoncap.c
+index ee4f848..611fd70 100644
+--- a/security/commoncap.c
++++ b/security/commoncap.c
+@@ -975,3 +975,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
+ }
+ return ret;
+ }
++EXPORT_SYMBOL(cap_file_mmap);
+diff --git a/security/device_cgroup.c b/security/device_cgroup.c
+index 4450fbe..bc94175 100644
+--- a/security/device_cgroup.c
++++ b/security/device_cgroup.c
+@@ -7,6 +7,7 @@
+ #include <linux/device_cgroup.h>
+ #include <linux/cgroup.h>
+ #include <linux/ctype.h>
++#include <linux/export.h>
+ #include <linux/list.h>
+ #include <linux/uaccess.h>
+ #include <linux/seq_file.h>
+@@ -500,6 +501,7 @@ found:
+
+ return -EPERM;
+ }
++EXPORT_SYMBOL(__devcgroup_inode_permission);
+
+ int devcgroup_inode_mknod(int mode, dev_t dev)
+ {
+diff --git a/security/security.c b/security/security.c
+index e2f684a..892000c 100644
+--- a/security/security.c
++++ b/security/security.c
+@@ -411,6 +411,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+ return 0;
+ return security_ops->path_rmdir(dir, dentry);
+ }
++EXPORT_SYMBOL(security_path_rmdir);
+
+ int security_path_unlink(struct path *dir, struct dentry *dentry)
+ {
+@@ -427,6 +428,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
+ return 0;
+ return security_ops->path_symlink(dir, dentry, old_name);
+ }
++EXPORT_SYMBOL(security_path_symlink);
+
+ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ struct dentry *new_dentry)
+@@ -435,6 +437,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ return 0;
+ return security_ops->path_link(old_dentry, new_dir, new_dentry);
+ }
++EXPORT_SYMBOL(security_path_link);
+
+ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
+ struct path *new_dir, struct dentry *new_dentry)
+@@ -453,6 +456,7 @@ int security_path_truncate(struct path *path)
+ return 0;
+ return security_ops->path_truncate(path);
+ }
++EXPORT_SYMBOL(security_path_truncate);
+
+ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
+ mode_t mode)
+@@ -461,6 +465,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
+ return 0;
+ return security_ops->path_chmod(dentry, mnt, mode);
+ }
++EXPORT_SYMBOL(security_path_chmod);
+
+ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ {
+@@ -468,6 +473,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ return 0;
+ return security_ops->path_chown(path, uid, gid);
+ }
++EXPORT_SYMBOL(security_path_chown);
+
+ int security_path_chroot(struct path *path)
+ {
+@@ -544,6 +550,7 @@ int security_inode_readlink(struct dentry *dentry)
+ return 0;
+ return security_ops->inode_readlink(dentry);
+ }
++EXPORT_SYMBOL(security_inode_readlink);
+
+ int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
+ {
+@@ -558,6 +565,7 @@ int security_inode_permission(struct inode *inode, int mask)
+ return 0;
+ return security_ops->inode_permission(inode, mask);
+ }
++EXPORT_SYMBOL(security_inode_permission);
+
+ int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
+ {
+@@ -673,6 +681,7 @@ int security_file_permission(struct file *file, int mask)
+
+ return fsnotify_perm(file, mask);
+ }
++EXPORT_SYMBOL(security_file_permission);
+
+ int security_file_alloc(struct file *file)
+ {
+@@ -700,6 +709,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
+ return ret;
+ return ima_file_mmap(file, prot);
+ }
++EXPORT_SYMBOL(security_file_mmap);
+
+ int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
+ unsigned long prot)
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-3.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-3.patch
new file mode 100644
index 000000000000..584d592ef068
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-3.patch
@@ -0,0 +1,257 @@
+aufs3.3 standalone patch
+
+diff --git a/fs/file_table.c b/fs/file_table.c
+index 20002e3..6d792ad 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
+@@ -443,6 +443,8 @@ void file_sb_list_del(struct file *file)
+ }
+ }
+
++EXPORT_SYMBOL(file_sb_list_del);
++
+ #ifdef CONFIG_SMP
+
+ /*
+diff --git a/fs/inode.c b/fs/inode.c
+index 83ab215..45242cd 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -66,6 +66,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
+ static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
+
+ __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
++EXPORT_SYMBOL(inode_sb_list_lock);
+
+ /*
+ * Empty aops. Can be used for the cases where the user does not
+diff --git a/fs/namei.c b/fs/namei.c
+index f2dcf8d..bcccefd 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1785,6 +1785,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
++EXPORT_SYMBOL(lookup_hash);
+
+ /**
+ * lookup_one_len - filesystem helper to lookup single pathname component
+diff --git a/fs/namespace.c b/fs/namespace.c
+index e608199..38fcc2e 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -1339,6 +1339,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+ }
+ return 0;
+ }
++EXPORT_SYMBOL(iterate_mounts);
+
+ static void cleanup_group_ids(struct mount *mnt, struct mount *end)
+ {
+diff --git a/fs/notify/group.c b/fs/notify/group.c
+index 63fc294..6f4adca 100644
+--- a/fs/notify/group.c
++++ b/fs/notify/group.c
+@@ -22,6 +22,7 @@
+ #include <linux/srcu.h>
+ #include <linux/rculist.h>
+ #include <linux/wait.h>
++#include <linux/module.h>
+
+ #include <linux/fsnotify_backend.h>
+ #include "fsnotify.h"
+@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
+ if (atomic_dec_and_test(&group->refcnt))
+ fsnotify_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_put_group);
+
+ /*
+ * Create a new fsnotify_group and hold a reference for the group returned.
+@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
+
+ return group;
+ }
++EXPORT_SYMBOL(fsnotify_alloc_group);
+diff --git a/fs/notify/mark.c b/fs/notify/mark.c
+index f104d56..54f36db 100644
+--- a/fs/notify/mark.c
++++ b/fs/notify/mark.c
+@@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
+ if (atomic_dec_and_test(&mark->refcnt))
+ mark->free_mark(mark);
+ }
++EXPORT_SYMBOL(fsnotify_put_mark);
+
+ /*
+ * Any time a mark is getting freed we end up here.
+@@ -191,6 +192,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
+ if (unlikely(atomic_dec_and_test(&group->num_marks)))
+ fsnotify_final_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_destroy_mark);
+
+ void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
+ {
+@@ -278,6 +280,7 @@ err:
+
+ return ret;
+ }
++EXPORT_SYMBOL(fsnotify_add_mark);
+
+ /*
+ * clear any marks in a group in which mark->flags & flags is true
+@@ -333,6 +336,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+ atomic_set(&mark->refcnt, 1);
+ mark->free_mark = free_mark;
+ }
++EXPORT_SYMBOL(fsnotify_init_mark);
+
+ static int fsnotify_mark_destroy(void *ignored)
+ {
+diff --git a/fs/open.c b/fs/open.c
+index 77becc0..f634f02 100644
+--- a/fs/open.c
++++ b/fs/open.c
+@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
+ mutex_unlock(&dentry->d_inode->i_mutex);
+ return ret;
+ }
++EXPORT_SYMBOL(do_truncate);
+
+ static long do_sys_truncate(const char __user *pathname, loff_t length)
+ {
+diff --git a/fs/splice.c b/fs/splice.c
+index c599f73..00303ba 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1108,6 +1108,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+
+ return splice_write(pipe, out, ppos, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_from);
+
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+@@ -1134,6 +1135,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+
+ return splice_read(in, ppos, pipe, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_to);
+
+ /**
+ * splice_direct_to_actor - splices data directly between two non-pipes
+diff --git a/security/commoncap.c b/security/commoncap.c
+index 7ce191e..19a95be 100644
+--- a/security/commoncap.c
++++ b/security/commoncap.c
+@@ -965,3 +965,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
+ }
+ return ret;
+ }
++EXPORT_SYMBOL(cap_file_mmap);
+diff --git a/security/device_cgroup.c b/security/device_cgroup.c
+index 8b5b5d8..911850c 100644
+--- a/security/device_cgroup.c
++++ b/security/device_cgroup.c
+@@ -7,6 +7,7 @@
+ #include <linux/device_cgroup.h>
+ #include <linux/cgroup.h>
+ #include <linux/ctype.h>
++#include <linux/export.h>
+ #include <linux/list.h>
+ #include <linux/uaccess.h>
+ #include <linux/seq_file.h>
+@@ -501,6 +502,7 @@ found:
+
+ return -EPERM;
+ }
++EXPORT_SYMBOL(__devcgroup_inode_permission);
+
+ int devcgroup_inode_mknod(int mode, dev_t dev)
+ {
+diff --git a/security/security.c b/security/security.c
+index d754249..1aa6154 100644
+--- a/security/security.c
++++ b/security/security.c
+@@ -392,6 +392,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+ return 0;
+ return security_ops->path_rmdir(dir, dentry);
+ }
++EXPORT_SYMBOL(security_path_rmdir);
+
+ int security_path_unlink(struct path *dir, struct dentry *dentry)
+ {
+@@ -408,6 +409,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
+ return 0;
+ return security_ops->path_symlink(dir, dentry, old_name);
+ }
++EXPORT_SYMBOL(security_path_symlink);
+
+ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ struct dentry *new_dentry)
+@@ -416,6 +418,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ return 0;
+ return security_ops->path_link(old_dentry, new_dir, new_dentry);
+ }
++EXPORT_SYMBOL(security_path_link);
+
+ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
+ struct path *new_dir, struct dentry *new_dentry)
+@@ -434,6 +437,7 @@ int security_path_truncate(struct path *path)
+ return 0;
+ return security_ops->path_truncate(path);
+ }
++EXPORT_SYMBOL(security_path_truncate);
+
+ int security_path_chmod(struct path *path, umode_t mode)
+ {
+@@ -441,6 +445,7 @@ int security_path_chmod(struct path *path, umode_t mode)
+ return 0;
+ return security_ops->path_chmod(path, mode);
+ }
++EXPORT_SYMBOL(security_path_chmod);
+
+ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ {
+@@ -448,6 +453,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ return 0;
+ return security_ops->path_chown(path, uid, gid);
+ }
++EXPORT_SYMBOL(security_path_chown);
+
+ int security_path_chroot(struct path *path)
+ {
+@@ -524,6 +530,7 @@ int security_inode_readlink(struct dentry *dentry)
+ return 0;
+ return security_ops->inode_readlink(dentry);
+ }
++EXPORT_SYMBOL(security_inode_readlink);
+
+ int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
+ {
+@@ -538,6 +545,7 @@ int security_inode_permission(struct inode *inode, int mask)
+ return 0;
+ return security_ops->inode_permission(inode, mask);
+ }
++EXPORT_SYMBOL(security_inode_permission);
+
+ int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
+ {
+@@ -653,6 +661,7 @@ int security_file_permission(struct file *file, int mask)
+
+ return fsnotify_perm(file, mask);
+ }
++EXPORT_SYMBOL(security_file_permission);
+
+ int security_file_alloc(struct file *file)
+ {
+@@ -680,6 +689,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
+ return ret;
+ return ima_file_mmap(file, prot);
+ }
++EXPORT_SYMBOL(security_file_mmap);
+
+ int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
+ unsigned long prot)
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-4.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-4.patch
new file mode 100644
index 000000000000..c519b65680c3
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-4.patch
@@ -0,0 +1,257 @@
+aufs3.4 standalone patch
+
+diff --git a/fs/file_table.c b/fs/file_table.c
+index 70f2a0f..146a3d7 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
+@@ -442,6 +442,8 @@ void file_sb_list_del(struct file *file)
+ }
+ }
+
++EXPORT_SYMBOL(file_sb_list_del);
++
+ #ifdef CONFIG_SMP
+
+ /*
+diff --git a/fs/inode.c b/fs/inode.c
+index 9f4f5fe..bb0f3ba 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -56,6 +56,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
+ static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
+
+ __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
++EXPORT_SYMBOL(inode_sb_list_lock);
+
+ /*
+ * Empty aops. Can be used for the cases where the user does not
+diff --git a/fs/namei.c b/fs/namei.c
+index 7ff959b..b170167 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1835,6 +1835,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
++EXPORT_SYMBOL(lookup_hash);
+
+ /**
+ * lookup_one_len - filesystem helper to lookup single pathname component
+diff --git a/fs/namespace.c b/fs/namespace.c
+index e608199..38fcc2e 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -1339,6 +1339,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+ }
+ return 0;
+ }
++EXPORT_SYMBOL(iterate_mounts);
+
+ static void cleanup_group_ids(struct mount *mnt, struct mount *end)
+ {
+diff --git a/fs/notify/group.c b/fs/notify/group.c
+index 63fc294..6f4adca 100644
+--- a/fs/notify/group.c
++++ b/fs/notify/group.c
+@@ -22,6 +22,7 @@
+ #include <linux/srcu.h>
+ #include <linux/rculist.h>
+ #include <linux/wait.h>
++#include <linux/module.h>
+
+ #include <linux/fsnotify_backend.h>
+ #include "fsnotify.h"
+@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
+ if (atomic_dec_and_test(&group->refcnt))
+ fsnotify_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_put_group);
+
+ /*
+ * Create a new fsnotify_group and hold a reference for the group returned.
+@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
+
+ return group;
+ }
++EXPORT_SYMBOL(fsnotify_alloc_group);
+diff --git a/fs/notify/mark.c b/fs/notify/mark.c
+index f104d56..54f36db 100644
+--- a/fs/notify/mark.c
++++ b/fs/notify/mark.c
+@@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
+ if (atomic_dec_and_test(&mark->refcnt))
+ mark->free_mark(mark);
+ }
++EXPORT_SYMBOL(fsnotify_put_mark);
+
+ /*
+ * Any time a mark is getting freed we end up here.
+@@ -191,6 +192,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
+ if (unlikely(atomic_dec_and_test(&group->num_marks)))
+ fsnotify_final_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_destroy_mark);
+
+ void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
+ {
+@@ -278,6 +280,7 @@ err:
+
+ return ret;
+ }
++EXPORT_SYMBOL(fsnotify_add_mark);
+
+ /*
+ * clear any marks in a group in which mark->flags & flags is true
+@@ -333,6 +336,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+ atomic_set(&mark->refcnt, 1);
+ mark->free_mark = free_mark;
+ }
++EXPORT_SYMBOL(fsnotify_init_mark);
+
+ static int fsnotify_mark_destroy(void *ignored)
+ {
+diff --git a/fs/open.c b/fs/open.c
+index 5720854..ec59242e 100644
+--- a/fs/open.c
++++ b/fs/open.c
+@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
+ mutex_unlock(&dentry->d_inode->i_mutex);
+ return ret;
+ }
++EXPORT_SYMBOL(do_truncate);
+
+ static long do_sys_truncate(const char __user *pathname, loff_t length)
+ {
+diff --git a/fs/splice.c b/fs/splice.c
+index f871233..70f5481 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1108,6 +1108,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+
+ return splice_write(pipe, out, ppos, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_from);
+
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+@@ -1134,6 +1135,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+
+ return splice_read(in, ppos, pipe, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_to);
+
+ /**
+ * splice_direct_to_actor - splices data directly between two non-pipes
+diff --git a/security/commoncap.c b/security/commoncap.c
+index 71a166a..5d63aac 100644
+--- a/security/commoncap.c
++++ b/security/commoncap.c
+@@ -972,3 +972,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
+ }
+ return ret;
+ }
++EXPORT_SYMBOL(cap_file_mmap);
+diff --git a/security/device_cgroup.c b/security/device_cgroup.c
+index c43a332..0c37289 100644
+--- a/security/device_cgroup.c
++++ b/security/device_cgroup.c
+@@ -7,6 +7,7 @@
+ #include <linux/device_cgroup.h>
+ #include <linux/cgroup.h>
+ #include <linux/ctype.h>
++#include <linux/export.h>
+ #include <linux/list.h>
+ #include <linux/uaccess.h>
+ #include <linux/seq_file.h>
+@@ -499,6 +500,7 @@ found:
+
+ return -EPERM;
+ }
++EXPORT_SYMBOL(__devcgroup_inode_permission);
+
+ int devcgroup_inode_mknod(int mode, dev_t dev)
+ {
+diff --git a/security/security.c b/security/security.c
+index bf619ff..60b996a 100644
+--- a/security/security.c
++++ b/security/security.c
+@@ -380,6 +380,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+ return 0;
+ return security_ops->path_rmdir(dir, dentry);
+ }
++EXPORT_SYMBOL(security_path_rmdir);
+
+ int security_path_unlink(struct path *dir, struct dentry *dentry)
+ {
+@@ -396,6 +397,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
+ return 0;
+ return security_ops->path_symlink(dir, dentry, old_name);
+ }
++EXPORT_SYMBOL(security_path_symlink);
+
+ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ struct dentry *new_dentry)
+@@ -404,6 +406,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ return 0;
+ return security_ops->path_link(old_dentry, new_dir, new_dentry);
+ }
++EXPORT_SYMBOL(security_path_link);
+
+ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
+ struct path *new_dir, struct dentry *new_dentry)
+@@ -422,6 +425,7 @@ int security_path_truncate(struct path *path)
+ return 0;
+ return security_ops->path_truncate(path);
+ }
++EXPORT_SYMBOL(security_path_truncate);
+
+ int security_path_chmod(struct path *path, umode_t mode)
+ {
+@@ -429,6 +433,7 @@ int security_path_chmod(struct path *path, umode_t mode)
+ return 0;
+ return security_ops->path_chmod(path, mode);
+ }
++EXPORT_SYMBOL(security_path_chmod);
+
+ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ {
+@@ -436,6 +441,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ return 0;
+ return security_ops->path_chown(path, uid, gid);
+ }
++EXPORT_SYMBOL(security_path_chown);
+
+ int security_path_chroot(struct path *path)
+ {
+@@ -512,6 +518,7 @@ int security_inode_readlink(struct dentry *dentry)
+ return 0;
+ return security_ops->inode_readlink(dentry);
+ }
++EXPORT_SYMBOL(security_inode_readlink);
+
+ int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
+ {
+@@ -526,6 +533,7 @@ int security_inode_permission(struct inode *inode, int mask)
+ return 0;
+ return security_ops->inode_permission(inode, mask);
+ }
++EXPORT_SYMBOL(security_inode_permission);
+
+ int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
+ {
+@@ -641,6 +649,7 @@ int security_file_permission(struct file *file, int mask)
+
+ return fsnotify_perm(file, mask);
+ }
++EXPORT_SYMBOL(security_file_permission);
+
+ int security_file_alloc(struct file *file)
+ {
+@@ -668,6 +677,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
+ return ret;
+ return ima_file_mmap(file, prot);
+ }
++EXPORT_SYMBOL(security_file_mmap);
+
+ int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
+ unsigned long prot)
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-5.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-5.patch
new file mode 100644
index 000000000000..bd753fd34ef5
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-5.patch
@@ -0,0 +1,288 @@
+aufs3.5 standalone patch
+
+diff --git a/fs/file_table.c b/fs/file_table.c
+index a305d9e..6a768be 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
+@@ -35,6 +35,7 @@ struct files_stat_struct files_stat = {
+ };
+
+ DEFINE_LGLOCK(files_lglock);
++EXPORT_SYMBOL(files_lglock);
+
+ /* SLAB cache for file structures */
+ static struct kmem_cache *filp_cachep __read_mostly;
+@@ -441,6 +442,8 @@ void file_sb_list_del(struct file *file)
+ }
+ }
+
++EXPORT_SYMBOL(file_sb_list_del);
++
+ #ifdef CONFIG_SMP
+
+ /*
+diff --git a/fs/inode.c b/fs/inode.c
+index 7f772fd..e789d2f 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -56,6 +56,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
+ static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
+
+ __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
++EXPORT_SYMBOL(inode_sb_list_lock);
+
+ /*
+ * Empty aops. Can be used for the cases where the user does not
+@@ -1507,6 +1508,7 @@ int update_time(struct inode *inode, struct timespec *time, int flags)
+ mark_inode_dirty_sync(inode);
+ return 0;
+ }
++EXPORT_SYMBOL(update_time);
+
+ /**
+ * touch_atime - update the access time
+diff --git a/fs/namei.c b/fs/namei.c
+index 18c9782..f09edf3 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -1868,6 +1868,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
+ {
+ return __lookup_hash(&nd->last, nd->path.dentry, nd);
+ }
++EXPORT_SYMBOL(lookup_hash);
+
+ /**
+ * lookup_one_len - filesystem helper to lookup single pathname component
+diff --git a/fs/namespace.c b/fs/namespace.c
+index 1e4a5fe..06aa768 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -50,6 +50,7 @@ EXPORT_SYMBOL_GPL(fs_kobj);
+ * tree or hash is modified or when a vfsmount structure is modified.
+ */
+ DEFINE_BRLOCK(vfsmount_lock);
++EXPORT_SYMBOL(vfsmount_lock);
+
+ static inline unsigned long hash(struct vfsmount *mnt, struct dentry *dentry)
+ {
+@@ -1341,6 +1342,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+ }
+ return 0;
+ }
++EXPORT_SYMBOL(iterate_mounts);
+
+ static void cleanup_group_ids(struct mount *mnt, struct mount *end)
+ {
+diff --git a/fs/notify/group.c b/fs/notify/group.c
+index 63fc294..6f4adca 100644
+--- a/fs/notify/group.c
++++ b/fs/notify/group.c
+@@ -22,6 +22,7 @@
+ #include <linux/srcu.h>
+ #include <linux/rculist.h>
+ #include <linux/wait.h>
++#include <linux/module.h>
+
+ #include <linux/fsnotify_backend.h>
+ #include "fsnotify.h"
+@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
+ if (atomic_dec_and_test(&group->refcnt))
+ fsnotify_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_put_group);
+
+ /*
+ * Create a new fsnotify_group and hold a reference for the group returned.
+@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
+
+ return group;
+ }
++EXPORT_SYMBOL(fsnotify_alloc_group);
+diff --git a/fs/notify/mark.c b/fs/notify/mark.c
+index f104d56..54f36db 100644
+--- a/fs/notify/mark.c
++++ b/fs/notify/mark.c
+@@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
+ if (atomic_dec_and_test(&mark->refcnt))
+ mark->free_mark(mark);
+ }
++EXPORT_SYMBOL(fsnotify_put_mark);
+
+ /*
+ * Any time a mark is getting freed we end up here.
+@@ -191,6 +192,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
+ if (unlikely(atomic_dec_and_test(&group->num_marks)))
+ fsnotify_final_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_destroy_mark);
+
+ void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
+ {
+@@ -278,6 +280,7 @@ err:
+
+ return ret;
+ }
++EXPORT_SYMBOL(fsnotify_add_mark);
+
+ /*
+ * clear any marks in a group in which mark->flags & flags is true
+@@ -333,6 +336,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+ atomic_set(&mark->refcnt, 1);
+ mark->free_mark = free_mark;
+ }
++EXPORT_SYMBOL(fsnotify_init_mark);
+
+ static int fsnotify_mark_destroy(void *ignored)
+ {
+diff --git a/fs/open.c b/fs/open.c
+index 1540632..2463289 100644
+--- a/fs/open.c
++++ b/fs/open.c
+@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
+ mutex_unlock(&dentry->d_inode->i_mutex);
+ return ret;
+ }
++EXPORT_SYMBOL(do_truncate);
+
+ static long do_sys_truncate(const char __user *pathname, loff_t length)
+ {
+diff --git a/fs/splice.c b/fs/splice.c
+index e3c40b5..3afc547 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1114,6 +1114,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+
+ return splice_write(pipe, out, ppos, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_from);
+
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+@@ -1140,6 +1141,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+
+ return splice_read(in, ppos, pipe, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_to);
+
+ /**
+ * splice_direct_to_actor - splices data directly between two non-pipes
+diff --git a/security/commoncap.c b/security/commoncap.c
+index 6dbae46..9f4f29a 100644
+--- a/security/commoncap.c
++++ b/security/commoncap.c
+@@ -979,9 +979,11 @@ int cap_mmap_addr(unsigned long addr)
+ }
+ return ret;
+ }
++EXPORT_SYMBOL(cap_mmap_addr);
+
+ int cap_mmap_file(struct file *file, unsigned long reqprot,
+ unsigned long prot, unsigned long flags)
+ {
+ return 0;
+ }
++EXPORT_SYMBOL(cap_mmap_file);
+diff --git a/security/device_cgroup.c b/security/device_cgroup.c
+index 442204c..e644a1c 100644
+--- a/security/device_cgroup.c
++++ b/security/device_cgroup.c
+@@ -7,6 +7,7 @@
+ #include <linux/device_cgroup.h>
+ #include <linux/cgroup.h>
+ #include <linux/ctype.h>
++#include <linux/export.h>
+ #include <linux/list.h>
+ #include <linux/uaccess.h>
+ #include <linux/seq_file.h>
+@@ -493,6 +494,7 @@ found:
+
+ return -EPERM;
+ }
++EXPORT_SYMBOL(__devcgroup_inode_permission);
+
+ int devcgroup_inode_mknod(int mode, dev_t dev)
+ {
+diff --git a/security/security.c b/security/security.c
+index 860aeb3..ffb57bf 100644
+--- a/security/security.c
++++ b/security/security.c
+@@ -384,6 +384,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+ return 0;
+ return security_ops->path_rmdir(dir, dentry);
+ }
++EXPORT_SYMBOL(security_path_rmdir);
+
+ int security_path_unlink(struct path *dir, struct dentry *dentry)
+ {
+@@ -400,6 +401,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
+ return 0;
+ return security_ops->path_symlink(dir, dentry, old_name);
+ }
++EXPORT_SYMBOL(security_path_symlink);
+
+ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ struct dentry *new_dentry)
+@@ -408,6 +410,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ return 0;
+ return security_ops->path_link(old_dentry, new_dir, new_dentry);
+ }
++EXPORT_SYMBOL(security_path_link);
+
+ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
+ struct path *new_dir, struct dentry *new_dentry)
+@@ -426,6 +429,7 @@ int security_path_truncate(struct path *path)
+ return 0;
+ return security_ops->path_truncate(path);
+ }
++EXPORT_SYMBOL(security_path_truncate);
+
+ int security_path_chmod(struct path *path, umode_t mode)
+ {
+@@ -433,6 +437,7 @@ int security_path_chmod(struct path *path, umode_t mode)
+ return 0;
+ return security_ops->path_chmod(path, mode);
+ }
++EXPORT_SYMBOL(security_path_chmod);
+
+ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ {
+@@ -440,6 +445,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ return 0;
+ return security_ops->path_chown(path, uid, gid);
+ }
++EXPORT_SYMBOL(security_path_chown);
+
+ int security_path_chroot(struct path *path)
+ {
+@@ -516,6 +522,7 @@ int security_inode_readlink(struct dentry *dentry)
+ return 0;
+ return security_ops->inode_readlink(dentry);
+ }
++EXPORT_SYMBOL(security_inode_readlink);
+
+ int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
+ {
+@@ -530,6 +537,7 @@ int security_inode_permission(struct inode *inode, int mask)
+ return 0;
+ return security_ops->inode_permission(inode, mask);
+ }
++EXPORT_SYMBOL(security_inode_permission);
+
+ int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
+ {
+@@ -645,6 +653,7 @@ int security_file_permission(struct file *file, int mask)
+
+ return fsnotify_perm(file, mask);
+ }
++EXPORT_SYMBOL(security_file_permission);
+
+ int security_file_alloc(struct file *file)
+ {
+@@ -705,6 +714,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
+ return ret;
+ return ima_file_mmap(file, prot);
+ }
++EXPORT_SYMBOL(security_mmap_file);
+
+ int security_mmap_addr(unsigned long addr)
+ {
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-6.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-6.patch
new file mode 100644
index 000000000000..b5dcadcc3c3d
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-6.patch
@@ -0,0 +1,276 @@
+aufs3.6 standalone patch
+
+diff --git a/fs/file_table.c b/fs/file_table.c
+index 701985e..a9fe741 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
+@@ -37,6 +37,7 @@ struct files_stat_struct files_stat = {
+ };
+
+ DEFINE_LGLOCK(files_lglock);
++EXPORT_SYMBOL(files_lglock);
+
+ /* SLAB cache for file structures */
+ static struct kmem_cache *filp_cachep __read_mostly;
+@@ -509,6 +510,8 @@ void file_sb_list_del(struct file *file)
+ }
+ }
+
++EXPORT_SYMBOL(file_sb_list_del);
++
+ #ifdef CONFIG_SMP
+
+ /*
+diff --git a/fs/inode.c b/fs/inode.c
+index 7b2c8fa..0c4318d 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -56,6 +56,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
+ static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
+
+ __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
++EXPORT_SYMBOL(inode_sb_list_lock);
+
+ /*
+ * Empty aops. Can be used for the cases where the user does not
+@@ -1507,6 +1508,7 @@ int update_time(struct inode *inode, struct timespec *time, int flags)
+ mark_inode_dirty_sync(inode);
+ return 0;
+ }
++EXPORT_SYMBOL(update_time);
+
+ /**
+ * touch_atime - update the access time
+diff --git a/fs/namespace.c b/fs/namespace.c
+index 7bdf790..5b85c4c 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -50,6 +50,7 @@ EXPORT_SYMBOL_GPL(fs_kobj);
+ * tree or hash is modified or when a vfsmount structure is modified.
+ */
+ DEFINE_BRLOCK(vfsmount_lock);
++EXPORT_SYMBOL(vfsmount_lock);
+
+ static inline unsigned long hash(struct vfsmount *mnt, struct dentry *dentry)
+ {
+@@ -1401,6 +1402,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+ }
+ return 0;
+ }
++EXPORT_SYMBOL(iterate_mounts);
+
+ static void cleanup_group_ids(struct mount *mnt, struct mount *end)
+ {
+diff --git a/fs/notify/group.c b/fs/notify/group.c
+index 63fc294..6f4adca 100644
+--- a/fs/notify/group.c
++++ b/fs/notify/group.c
+@@ -22,6 +22,7 @@
+ #include <linux/srcu.h>
+ #include <linux/rculist.h>
+ #include <linux/wait.h>
++#include <linux/module.h>
+
+ #include <linux/fsnotify_backend.h>
+ #include "fsnotify.h"
+@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
+ if (atomic_dec_and_test(&group->refcnt))
+ fsnotify_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_put_group);
+
+ /*
+ * Create a new fsnotify_group and hold a reference for the group returned.
+@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
+
+ return group;
+ }
++EXPORT_SYMBOL(fsnotify_alloc_group);
+diff --git a/fs/notify/mark.c b/fs/notify/mark.c
+index f104d56..54f36db 100644
+--- a/fs/notify/mark.c
++++ b/fs/notify/mark.c
+@@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
+ if (atomic_dec_and_test(&mark->refcnt))
+ mark->free_mark(mark);
+ }
++EXPORT_SYMBOL(fsnotify_put_mark);
+
+ /*
+ * Any time a mark is getting freed we end up here.
+@@ -191,6 +192,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
+ if (unlikely(atomic_dec_and_test(&group->num_marks)))
+ fsnotify_final_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_destroy_mark);
+
+ void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
+ {
+@@ -278,6 +280,7 @@ err:
+
+ return ret;
+ }
++EXPORT_SYMBOL(fsnotify_add_mark);
+
+ /*
+ * clear any marks in a group in which mark->flags & flags is true
+@@ -333,6 +336,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+ atomic_set(&mark->refcnt, 1);
+ mark->free_mark = free_mark;
+ }
++EXPORT_SYMBOL(fsnotify_init_mark);
+
+ static int fsnotify_mark_destroy(void *ignored)
+ {
+diff --git a/fs/open.c b/fs/open.c
+index e1f2cdb..2804cd6 100644
+--- a/fs/open.c
++++ b/fs/open.c
+@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
+ mutex_unlock(&dentry->d_inode->i_mutex);
+ return ret;
+ }
++EXPORT_SYMBOL(do_truncate);
+
+ static long do_sys_truncate(const char __user *pathname, loff_t length)
+ {
+diff --git a/fs/splice.c b/fs/splice.c
+index 663b402..51e1deb 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1117,6 +1117,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+
+ return splice_write(pipe, out, ppos, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_from);
+
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+@@ -1143,6 +1144,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+
+ return splice_read(in, ppos, pipe, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_to);
+
+ /**
+ * splice_direct_to_actor - splices data directly between two non-pipes
+diff --git a/security/commoncap.c b/security/commoncap.c
+index 6dbae46..9f4f29a 100644
+--- a/security/commoncap.c
++++ b/security/commoncap.c
+@@ -979,9 +979,11 @@ int cap_mmap_addr(unsigned long addr)
+ }
+ return ret;
+ }
++EXPORT_SYMBOL(cap_mmap_addr);
+
+ int cap_mmap_file(struct file *file, unsigned long reqprot,
+ unsigned long prot, unsigned long flags)
+ {
+ return 0;
+ }
++EXPORT_SYMBOL(cap_mmap_file);
+diff --git a/security/device_cgroup.c b/security/device_cgroup.c
+index 442204c..e644a1c 100644
+--- a/security/device_cgroup.c
++++ b/security/device_cgroup.c
+@@ -7,6 +7,7 @@
+ #include <linux/device_cgroup.h>
+ #include <linux/cgroup.h>
+ #include <linux/ctype.h>
++#include <linux/export.h>
+ #include <linux/list.h>
+ #include <linux/uaccess.h>
+ #include <linux/seq_file.h>
+@@ -493,6 +494,7 @@ found:
+
+ return -EPERM;
+ }
++EXPORT_SYMBOL(__devcgroup_inode_permission);
+
+ int devcgroup_inode_mknod(int mode, dev_t dev)
+ {
+diff --git a/security/security.c b/security/security.c
+index 860aeb3..ffb57bf 100644
+--- a/security/security.c
++++ b/security/security.c
+@@ -384,6 +384,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+ return 0;
+ return security_ops->path_rmdir(dir, dentry);
+ }
++EXPORT_SYMBOL(security_path_rmdir);
+
+ int security_path_unlink(struct path *dir, struct dentry *dentry)
+ {
+@@ -400,6 +401,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
+ return 0;
+ return security_ops->path_symlink(dir, dentry, old_name);
+ }
++EXPORT_SYMBOL(security_path_symlink);
+
+ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ struct dentry *new_dentry)
+@@ -408,6 +410,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ return 0;
+ return security_ops->path_link(old_dentry, new_dir, new_dentry);
+ }
++EXPORT_SYMBOL(security_path_link);
+
+ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
+ struct path *new_dir, struct dentry *new_dentry)
+@@ -426,6 +429,7 @@ int security_path_truncate(struct path *path)
+ return 0;
+ return security_ops->path_truncate(path);
+ }
++EXPORT_SYMBOL(security_path_truncate);
+
+ int security_path_chmod(struct path *path, umode_t mode)
+ {
+@@ -433,6 +437,7 @@ int security_path_chmod(struct path *path, umode_t mode)
+ return 0;
+ return security_ops->path_chmod(path, mode);
+ }
++EXPORT_SYMBOL(security_path_chmod);
+
+ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ {
+@@ -440,6 +445,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ return 0;
+ return security_ops->path_chown(path, uid, gid);
+ }
++EXPORT_SYMBOL(security_path_chown);
+
+ int security_path_chroot(struct path *path)
+ {
+@@ -516,6 +522,7 @@ int security_inode_readlink(struct dentry *dentry)
+ return 0;
+ return security_ops->inode_readlink(dentry);
+ }
++EXPORT_SYMBOL(security_inode_readlink);
+
+ int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
+ {
+@@ -530,6 +537,7 @@ int security_inode_permission(struct inode *inode, int mask)
+ return 0;
+ return security_ops->inode_permission(inode, mask);
+ }
++EXPORT_SYMBOL(security_inode_permission);
+
+ int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
+ {
+@@ -645,6 +653,7 @@ int security_file_permission(struct file *file, int mask)
+
+ return fsnotify_perm(file, mask);
+ }
++EXPORT_SYMBOL(security_file_permission);
+
+ int security_file_alloc(struct file *file)
+ {
+@@ -705,6 +714,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
+ return ret;
+ return ima_file_mmap(file, prot);
+ }
++EXPORT_SYMBOL(security_mmap_file);
+
+ int security_mmap_addr(unsigned long addr)
+ {
diff --git a/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-x-rcN.patch b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-x-rcN.patch
new file mode 100644
index 000000000000..764157ecd94b
--- /dev/null
+++ b/sys-fs/aufs3/files/3_p20121210/aufs3-standalone-x-rcN.patch
@@ -0,0 +1,276 @@
+aufs3.x-rcN standalone patch
+
+diff --git a/fs/file_table.c b/fs/file_table.c
+index dac6792..e3f2c15 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
+@@ -37,6 +37,7 @@ struct files_stat_struct files_stat = {
+ };
+
+ DEFINE_LGLOCK(files_lglock);
++EXPORT_SYMBOL(files_lglock);
+
+ /* SLAB cache for file structures */
+ static struct kmem_cache *filp_cachep __read_mostly;
+@@ -403,6 +404,8 @@ void file_sb_list_del(struct file *file)
+ }
+ }
+
++EXPORT_SYMBOL(file_sb_list_del);
++
+ #ifdef CONFIG_SMP
+
+ /*
+diff --git a/fs/inode.c b/fs/inode.c
+index ee497f9..5e7eee7 100644
+--- a/fs/inode.c
++++ b/fs/inode.c
+@@ -56,6 +56,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
+ static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
+
+ __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
++EXPORT_SYMBOL(inode_sb_list_lock);
+
+ /*
+ * Empty aops. Can be used for the cases where the user does not
+@@ -1507,6 +1508,7 @@ int update_time(struct inode *inode, struct timespec *time, int flags)
+ mark_inode_dirty_sync(inode);
+ return 0;
+ }
++EXPORT_SYMBOL(update_time);
+
+ /**
+ * touch_atime - update the access time
+diff --git a/fs/namespace.c b/fs/namespace.c
+index 2496062..3e66a90 100644
+--- a/fs/namespace.c
++++ b/fs/namespace.c
+@@ -50,6 +50,7 @@ EXPORT_SYMBOL_GPL(fs_kobj);
+ * tree or hash is modified or when a vfsmount structure is modified.
+ */
+ DEFINE_BRLOCK(vfsmount_lock);
++EXPORT_SYMBOL(vfsmount_lock);
+
+ static inline unsigned long hash(struct vfsmount *mnt, struct dentry *dentry)
+ {
+@@ -1401,6 +1402,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+ }
+ return 0;
+ }
++EXPORT_SYMBOL(iterate_mounts);
+
+ static void cleanup_group_ids(struct mount *mnt, struct mount *end)
+ {
+diff --git a/fs/notify/group.c b/fs/notify/group.c
+index 63fc294..6f4adca 100644
+--- a/fs/notify/group.c
++++ b/fs/notify/group.c
+@@ -22,6 +22,7 @@
+ #include <linux/srcu.h>
+ #include <linux/rculist.h>
+ #include <linux/wait.h>
++#include <linux/module.h>
+
+ #include <linux/fsnotify_backend.h>
+ #include "fsnotify.h"
+@@ -70,6 +71,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
+ if (atomic_dec_and_test(&group->refcnt))
+ fsnotify_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_put_group);
+
+ /*
+ * Create a new fsnotify_group and hold a reference for the group returned.
+@@ -102,3 +104,4 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
+
+ return group;
+ }
++EXPORT_SYMBOL(fsnotify_alloc_group);
+diff --git a/fs/notify/mark.c b/fs/notify/mark.c
+index f104d56..54f36db 100644
+--- a/fs/notify/mark.c
++++ b/fs/notify/mark.c
+@@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
+ if (atomic_dec_and_test(&mark->refcnt))
+ mark->free_mark(mark);
+ }
++EXPORT_SYMBOL(fsnotify_put_mark);
+
+ /*
+ * Any time a mark is getting freed we end up here.
+@@ -191,6 +192,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
+ if (unlikely(atomic_dec_and_test(&group->num_marks)))
+ fsnotify_final_destroy_group(group);
+ }
++EXPORT_SYMBOL(fsnotify_destroy_mark);
+
+ void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
+ {
+@@ -278,6 +280,7 @@ err:
+
+ return ret;
+ }
++EXPORT_SYMBOL(fsnotify_add_mark);
+
+ /*
+ * clear any marks in a group in which mark->flags & flags is true
+@@ -333,6 +336,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+ atomic_set(&mark->refcnt, 1);
+ mark->free_mark = free_mark;
+ }
++EXPORT_SYMBOL(fsnotify_init_mark);
+
+ static int fsnotify_mark_destroy(void *ignored)
+ {
+diff --git a/fs/open.c b/fs/open.c
+index 59071f5..7e4c856 100644
+--- a/fs/open.c
++++ b/fs/open.c
+@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
+ mutex_unlock(&dentry->d_inode->i_mutex);
+ return ret;
+ }
++EXPORT_SYMBOL(do_truncate);
+
+ static long do_sys_truncate(const char __user *pathname, loff_t length)
+ {
+diff --git a/fs/splice.c b/fs/splice.c
+index f185c6c..f3d89da 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1117,6 +1117,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+
+ return splice_write(pipe, out, ppos, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_from);
+
+ /*
+ * Attempt to initiate a splice from a file to a pipe.
+@@ -1143,6 +1144,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+
+ return splice_read(in, ppos, pipe, len, flags);
+ }
++EXPORT_SYMBOL(do_splice_to);
+
+ /**
+ * splice_direct_to_actor - splices data directly between two non-pipes
+diff --git a/security/commoncap.c b/security/commoncap.c
+index 6dbae46..9f4f29a 100644
+--- a/security/commoncap.c
++++ b/security/commoncap.c
+@@ -979,9 +979,11 @@ int cap_mmap_addr(unsigned long addr)
+ }
+ return ret;
+ }
++EXPORT_SYMBOL(cap_mmap_addr);
+
+ int cap_mmap_file(struct file *file, unsigned long reqprot,
+ unsigned long prot, unsigned long flags)
+ {
+ return 0;
+ }
++EXPORT_SYMBOL(cap_mmap_file);
+diff --git a/security/device_cgroup.c b/security/device_cgroup.c
+index b08d20c..a90420b 100644
+--- a/security/device_cgroup.c
++++ b/security/device_cgroup.c
+@@ -7,6 +7,7 @@
+ #include <linux/device_cgroup.h>
+ #include <linux/cgroup.h>
+ #include <linux/ctype.h>
++#include <linux/export.h>
+ #include <linux/list.h>
+ #include <linux/uaccess.h>
+ #include <linux/seq_file.h>
+@@ -617,6 +618,7 @@ int __devcgroup_inode_permission(struct inode *inode, int mask)
+ return __devcgroup_check_permission(type, imajor(inode), iminor(inode),
+ access);
+ }
++EXPORT_SYMBOL(__devcgroup_inode_permission);
+
+ int devcgroup_inode_mknod(int mode, dev_t dev)
+ {
+diff --git a/security/security.c b/security/security.c
+index 8dcd4ae..6efe561 100644
+--- a/security/security.c
++++ b/security/security.c
+@@ -396,6 +396,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+ return 0;
+ return security_ops->path_rmdir(dir, dentry);
+ }
++EXPORT_SYMBOL(security_path_rmdir);
+
+ int security_path_unlink(struct path *dir, struct dentry *dentry)
+ {
+@@ -412,6 +413,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
+ return 0;
+ return security_ops->path_symlink(dir, dentry, old_name);
+ }
++EXPORT_SYMBOL(security_path_symlink);
+
+ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ struct dentry *new_dentry)
+@@ -420,6 +422,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+ return 0;
+ return security_ops->path_link(old_dentry, new_dir, new_dentry);
+ }
++EXPORT_SYMBOL(security_path_link);
+
+ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
+ struct path *new_dir, struct dentry *new_dentry)
+@@ -438,6 +441,7 @@ int security_path_truncate(struct path *path)
+ return 0;
+ return security_ops->path_truncate(path);
+ }
++EXPORT_SYMBOL(security_path_truncate);
+
+ int security_path_chmod(struct path *path, umode_t mode)
+ {
+@@ -445,6 +449,7 @@ int security_path_chmod(struct path *path, umode_t mode)
+ return 0;
+ return security_ops->path_chmod(path, mode);
+ }
++EXPORT_SYMBOL(security_path_chmod);
+
+ int security_path_chown(struct path *path, kuid_t uid, kgid_t gid)
+ {
+@@ -452,6 +457,7 @@ int security_path_chown(struct path *path, kuid_t uid, kgid_t gid)
+ return 0;
+ return security_ops->path_chown(path, uid, gid);
+ }
++EXPORT_SYMBOL(security_path_chown);
+
+ int security_path_chroot(struct path *path)
+ {
+@@ -528,6 +534,7 @@ int security_inode_readlink(struct dentry *dentry)
+ return 0;
+ return security_ops->inode_readlink(dentry);
+ }
++EXPORT_SYMBOL(security_inode_readlink);
+
+ int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
+ {
+@@ -542,6 +549,7 @@ int security_inode_permission(struct inode *inode, int mask)
+ return 0;
+ return security_ops->inode_permission(inode, mask);
+ }
++EXPORT_SYMBOL(security_inode_permission);
+
+ int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
+ {
+@@ -663,6 +671,7 @@ int security_file_permission(struct file *file, int mask)
+
+ return fsnotify_perm(file, mask);
+ }
++EXPORT_SYMBOL(security_file_permission);
+
+ int security_file_alloc(struct file *file)
+ {
+@@ -723,6 +732,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
+ return ret;
+ return ima_file_mmap(file, prot);
+ }
++EXPORT_SYMBOL(security_mmap_file);
+
+ int security_mmap_addr(unsigned long addr)
+ {