diff options
author | Justin Lecher <jlec@gentoo.org> | 2012-12-10 08:06:14 +0000 |
---|---|---|
committer | Justin Lecher <jlec@gentoo.org> | 2012-12-10 08:06:14 +0000 |
commit | 35074d91c0412d7a48012ae26830467cde9b26e9 (patch) | |
tree | a4b8ddc3fa006edfea24b37d9e3f2adfd320afa1 /sys-fs/aufs3 | |
parent | Ameld lower bounds for test depends. (diff) | |
download | historical-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')
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) + { |