diff options
author | Richard Yao <ryao@gentoo.org> | 2013-07-14 11:52:57 +0000 |
---|---|---|
committer | Richard Yao <ryao@gentoo.org> | 2013-07-14 11:52:57 +0000 |
commit | 5b5161670899618011033f4ed3a9e118cb273886 (patch) | |
tree | aa7f6d0899162879c15da37a7e8bfff98b54919f /sys-fs/zfs | |
parent | Linux 3.10 support; asynchronous zvol initialization; miscellaneous fixes for... (diff) | |
download | historical-5b5161670899618011033f4ed3a9e118cb273886.tar.gz historical-5b5161670899618011033f4ed3a9e118cb273886.tar.bz2 historical-5b5161670899618011033f4ed3a9e118cb273886.zip |
Systemd support (bug #475872); Add python dependency to 9999 ebuild (bug #473788); Asynchronous zvol initialization; GCC 4.8 Compatibility Fix; Miscellaneous zdb fixes
Package-Manager: portage-2.2.0_alpha187/cvs/Linux x86_64
Manifest-Sign-Key: 0xBEE84C64
Diffstat (limited to 'sys-fs/zfs')
-rw-r--r-- | sys-fs/zfs/ChangeLog | 13 | ||||
-rw-r--r-- | sys-fs/zfs/Manifest | 38 | ||||
-rw-r--r-- | sys-fs/zfs/files/zfs-0.6.1-avoid-zdb-abort.patch | 30 | ||||
-rw-r--r-- | sys-fs/zfs/files/zfs-0.6.1-fix-gcc-4.8-warning.patch | 42 | ||||
-rw-r--r-- | sys-fs/zfs/files/zfs-0.6.1-fix-zvol-initialization-r1.patch | 167 | ||||
-rw-r--r-- | sys-fs/zfs/files/zfs-init.sh.in | 29 | ||||
-rw-r--r-- | sys-fs/zfs/files/zfs.service.in | 16 | ||||
-rw-r--r-- | sys-fs/zfs/zfs-0.6.1-r2.ebuild | 154 | ||||
-rw-r--r-- | sys-fs/zfs/zfs-9999.ebuild | 41 |
9 files changed, 502 insertions, 28 deletions
diff --git a/sys-fs/zfs/ChangeLog b/sys-fs/zfs/ChangeLog index cab2e05fcc00..47bfedcaac7e 100644 --- a/sys-fs/zfs/ChangeLog +++ b/sys-fs/zfs/ChangeLog @@ -1,6 +1,17 @@ # ChangeLog for sys-fs/zfs # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs/ChangeLog,v 1.65 2013/05/29 01:12:58 ryao Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs/ChangeLog,v 1.66 2013/07/14 11:52:50 ryao Exp $ + +*zfs-0.6.1-r2 (14 Jul 2013) + + 14 Jul 2013; Richard Yao <ryao@gentoo.org> + +files/zfs-0.6.1-avoid-zdb-abort.patch, + +files/zfs-0.6.1-fix-gcc-4.8-warning.patch, + +files/zfs-0.6.1-fix-zvol-initialization-r1.patch, +files/zfs-init.sh.in, + +files/zfs.service.in, +zfs-0.6.1-r2.ebuild, zfs-9999.ebuild: + Systemd support (bug #475872); Add python dependency to 9999 ebuild (bug + #473788); Asynchronous zvol initialization; GCC 4.8 Compatibility Fix; + Miscellaneous zdb fixes 29 May 2013; Richard Yao <ryao@gentoo.org> zfs-0.6.1-r1.ebuild: Add selinux USE flag diff --git a/sys-fs/zfs/Manifest b/sys-fs/zfs/Manifest index e35657312511..a97f9808d964 100644 --- a/sys-fs/zfs/Manifest +++ b/sys-fs/zfs/Manifest @@ -3,7 +3,12 @@ Hash: SHA256 AUX bash-completion 6203 SHA256 15e742477fad0104871fc055b6ce9bf803540070e47fa515ea7ca3c1a401f831 SHA512 e7ccb7179c4c455c496daab192099d7553674b9505801e25a2ea8c67a1b4de15d68ac99b2c3347c1f3454f88ede7694f08da61c5d061f0577bb1594ca4a90f12 WHIRLPOOL 79dfdc9c80a707f6bb39bea51ec451c16b821886ce3e84c73a249313d991cf8019f0647b0fe439754fc1ad08cb294bf4c245955fdc4af30286a8afd61dba21ba AUX zfs-0.6.0_rc14-fix-libzpool-function-relocations.patch 1159 SHA256 bd40a60408772cfe789bd0f055906cd2aebf43761adb2cb19ca6219c92c5f996 SHA512 aba0ee09e0070ee7472ffeb0274fdac1870e6a11390c110e9febd7240eb8465351355ce6b735d3f0a6ce2ce5bd167a4239ececc3dae33899df3b4f72c162f037 WHIRLPOOL 72635866ef46b592d257071d4902d36b95855850e40de0b6a6afc6ad416460ebdc5b2ece67d011a052895ab6ae9135d77622f7fb15f4cc0f3a6b96df6c2581d2 +AUX zfs-0.6.1-avoid-zdb-abort.patch 844 SHA256 651ece4a40b842c00d393d3f969435f733a987cc420f9a300ed2bd1c78e94dba SHA512 d976e0a829ddad680449d0a4d89a7130fb113668bf6766e3004df47a14620e26910e3d0f7cc2f8d5a7cef4a7ba3794ed36624d63ee6c577585d80964e931becf WHIRLPOOL fa47408a8116d5b72f322bbe878f2275febfca613e8718406ed566be23a4a8715113be66c1694c4272f6fc5c26aae78dbd2de31c095aa0cf95dbc7d13d276d4c +AUX zfs-0.6.1-fix-gcc-4.8-warning.patch 1432 SHA256 2a2fb2a0b4960e7c616f4bb27a2a1ddf6dfcef30eb6b22ead20d70fe58055c1e SHA512 6063ad756aac5df4b850fb79630696f0616e3a906463bdce147b07383ed1cba47a60e02eac3cc2888fb92f9915e6ff8e28ca36c4e3d11cc9e65391c68a79d972 WHIRLPOOL 4d0432ca6468d44de7a870e03d20497eeb39b1e373d843862a695622b9d69e8eff6f3d52471b7756f80c9392ae12a797b6665c4d27f73710f67f0ee1aaafcbad +AUX zfs-0.6.1-fix-zvol-initialization-r1.patch 4803 SHA256 36f778dc0fa3c3c7aa4f2383e9463a75c51da19a1a719018f729e9d42ffb52ed SHA512 bfe5ee1185fe044cbf758414b0c8bc4311de6b0502a6f0c6a8fecec71402376f0ab4aa7e798f870c262f54d77f6b84590cc2ae371ff4880dcd97b834ac443483 WHIRLPOOL 3932ef6eea9ed0f23146f980504540843b04a684d5c55cdb5aec60d9fdb18354d61e485b55f5a0f2561ed3e379accd6b3d3f7c39bdbc91bc0d3194546e75ec5e AUX zfs-0.6.1-gentoo-openrc-dependencies.patch 2416 SHA256 01b4def8e15eb8854d87529d4540b7b85c927b64e81112cecf13a5aa30c1bc31 SHA512 d4012fb14f3c599d763b6412c092b95d76297afd4d65b71a602485357505aa1fbdc7f5ad437b5634365311349f1a29adcc1dd0e7d20cb85802ce58c0dd393d3c WHIRLPOOL 9c4e3ece9773efc5ec99f9a453eca4656d8e64ac47735878313cddbae8a64ba34503c4a3dd206e658c47f1b9360d545e497838e455af90b87ae4a935d28172f6 +AUX zfs-init.sh.in 582 SHA256 820cbbfe881315a640ea398c0c7eac60d2eeb191f694ef69f3e8ea725a8de085 SHA512 bed7eae5f902f13489241782d3d560b53a5a3258de492763b7b25783ca9417975afb9000f68f58be5c2057e1db50a569374ed0ff572140aa65e401e20e646461 WHIRLPOOL 3e9ec22a60a9ba4e71cfab74b25d5ad4aff1b64bfb210d31fc36d5a768527e8b692fe3a9712d9f6bfa8f08e03f7e92ed035a3d8bf4e360b22fa4a4e5b9e9d214 +AUX zfs.service.in 335 SHA256 05200c23a6eb60698eadf4dea671c96adab349cc0d8539cb95cd96fcc98a5d1a SHA512 45251fd4ea945f8be770710f3833a97a123a6acd47aa5ba5458ec3518cb54420a3cdb63835f3c25d99c845f03b6e14c87dee525396fd7969eb3f6cf6e8266322 WHIRLPOOL 01ad25d8352e4ccd04351f46d18b185224a0386910a965ffda2e603b10d35777700f9396905737f19bc35d9629514fe5765cf3f410af8ca3b3d52261c4c47475 DIST zfs-0.6.0-rc10.tar.gz 2061969 SHA256 250978869fe4b0f3a5c4f7aa2ae2f584b311e9036064a4f2135b33fe3ce567d6 SHA512 e6634453b378c6cd8d8799ce0a1f7016f3607b80bd3c87cd80f36ee9330ca065a1678d489f49675481f7e7d630e5511ea30e421515444e60549f753c051ca52d WHIRLPOOL 24997422fe14226623f3d2f34fe92c22f6b8b0975d488d67198e53b744aa4e775a82e56b69be83ab593820320707348d611127f1a8719a100cc9fea108a85761 DIST zfs-0.6.0-rc11.tar.gz 2099538 SHA256 4701f9d32d3475650068d0c07b968f0de443103d73db315b4f328c296cd6a073 SHA512 4bd2fc3cd5eb89f64b7b92a16e416edb245b0a9b90b5e1aa3bd1560c7d568322de03fdb40ede2d8417b0b642bbf70a1e804d51e4537babbfa9c767271b701138 WHIRLPOOL c56034028fd7c21f516ceb268cc25eeedd129a2a7cb8c1615f43982a86bb4400e80ab74159c4fc5d24a79610e2c0935f54cbc33c447751f29cecec882bfef89e DIST zfs-0.6.0-rc12.tar.gz 2150456 SHA256 3eb85e4028480e9dd56e29eca0a4e71565c1501f0159c80a1b1ff961b6f137d6 SHA512 55f0d9ea9f085d78a4929250949449ec4329a71c00ecd6fe76322716b64dc1152d93a23bb8b18e4ba7e1fbd6110b170366763f730c1e5006998aee3870e3635e WHIRLPOOL ea8fbe2edb2e0029affed261916d10ef350129c496b71064d34749b805d83c1531d886a55802839bb4226e298719f708f6816ee5411626b431b1d506bbf10232 @@ -16,24 +21,25 @@ EBUILD zfs-0.6.0_rc12-r3.ebuild 2425 SHA256 7ae28e9025453f623fdfddccbaba6d4f5644 EBUILD zfs-0.6.0_rc13-r2.ebuild 2767 SHA256 a01f304e92fd0fdb0c2d61d2924948a8184a31d6ff300d0b95cf10fdde20c4b7 SHA512 0c5280577004b38eab50beaa86d621e06eac648e7b5f9ba0af7e3522c9ea1ea9e12cb0ab4cf0a918c59bf919c9596ea23716be639a86a6bbc4ce3151d3cef744 WHIRLPOOL af66f26c293b926e52f729ef11fd5ac218c8a6ef78a73525a945fc843f9de2735ac65032a9a0c1a7b35f6d5bd083751c52e3301949212c2e284f67ef1afa33b7 EBUILD zfs-0.6.0_rc14-r1.ebuild 2898 SHA256 94eec2441edd8094dad6bb73a576198fcb5c3221de9e4cff13193f86906897a3 SHA512 e948a46ab4560754896044411fb51b1188e601dca4cd9de56022b72ee6d8c942329813e71a9dadb9c9665d203c5d8dd04c1f9071472950eaead78898ed5826f1 WHIRLPOOL 84080714d51b18a663812115c16eb734f71ab2f02d5138a30dcc660a361caa198021ae46b744c35edd8b78edfcc3f9a2b5ece8fdf68b2ac26dae199eb76028a3 EBUILD zfs-0.6.1-r1.ebuild 3017 SHA256 38794a4dcbd66db04260f501734da274e4738ab5b3cfa3b360f09c9437374e91 SHA512 950fd8c79e06ed42d474d13a7225cc7aae56923d67daf4dd194e5b98ffda70f6b5a7414190b5fcc8677794bf82b98ae2ad2205b6094d5285e42d3de32eff9b1c WHIRLPOOL 6cdba090ae21a0d47e55213ffe4b2a97fb58e67bd9e2c7d039d62007f5bd18a5ea061c05ab2c23a93716478250e938a981bdfdc2e5a51c7d5ef7c13d13382a13 +EBUILD zfs-0.6.1-r2.ebuild 3725 SHA256 ed454273ae807ddaf329eb371fbd1616220781144dab09d093cf2f123454adb7 SHA512 d6639467dcb62b03a5832f30914d5bfb44049f81ee8aae876735556b2d0b4a93a0eb32f6c33c4fe22167002fc4f8868d2a4662e5fa7083ab5c70320ca476e453 WHIRLPOOL 92d169bd337b67e2b37cde90886fa2421127bcb4fe050fcab6ea28f608af445f9b7d21b3d224a7394e597b8ff7b156c87325e2d55a4a564bfbc13789386aec00 EBUILD zfs-0.6.1.ebuild 2787 SHA256 0d14acc8d1e636d2ef2135f49c48699a906767518402c5b899e61fcb8c06f77e SHA512 f32c75e8f29597015bb84c9b86e4afc59050fdd864dadcf73f7e033748bfe1fd8d571082688ae842d580bcdf61806c4a7896b22e8ccc035ac1caba1ff24fdc7d WHIRLPOOL fb20aa638bae357562c01e6aef319ccea970753c9148a36a484a5c252e9b1c905db10461a0e9d1ef217a6ac9f2989dcc090814359f593cc4f7d8e8228de1baa5 -EBUILD zfs-9999.ebuild 2890 SHA256 58335fa7bb966fcdafa0d770ba91b24de7ec8994dc6e355c64eb8fdfdd6cbe9b SHA512 e728d7e973cd30e561c6bf8af12a3c6fa51beac390ea22e318b960e76384b919c2e7d4ac98e43aa03ca3c999855ebfe0fe40e428921577b51d566de74bb70e82 WHIRLPOOL f26761c1f0bb6c6885ee296a748bfe2cc2d1fbae5c39a64f3b329b92b3250a42f8f29479b86fd7267a35516a1528d2211be1a2c7389423e85b066f6101547cca -MISC ChangeLog 12731 SHA256 024f4d462514484cd02659e9e875eb7806f5e3814cde5b3d3f28d8b20a0b1d6e SHA512 1ff69bdfac12650bc59cfd58cdd263d2e5214a8c4999a7007f5bad1ac6eb17557ced6151a54f64bc66435c7f1e57fbe4013f1646b9322e453d8e27b1c1f4fc6b WHIRLPOOL c751f3b20ffd2e778f06a5ea843bf417dbd8600236a709edfe5c577e8bb84015284bc0cfc92f852bac414c4985729574c1b6fcabab704fcf2e85dc43d40d86e7 +EBUILD zfs-9999.ebuild 3510 SHA256 99e3cc3519e4d4913ed2cac611e10a8898376bc7a4325d2eb59a974db18ec23b SHA512 645aa7377a1e2c075fc85e2cba90f1f4513187d67674435f8786a3bed58677212728747700e6d7c755dd212f88e3e72c36ae05d061c464dadc0880aa1156609a WHIRLPOOL b9355980fd1c92ee55aa4659912a64f7763b8db17baf180664a3b73770ed954024a30c9e646115c6762bb61da395fc8f105ae324c8f10cd9f4561770db0092a1 +MISC ChangeLog 13208 SHA256 928b17b7e378e2a080838fb33a4fe8151d1203a2a43ef30b4072b1cbb526373b SHA512 3f599de923f88a368f4209f24bd9ba7307701733008cff58093ee35b889f8b10eb1b93b29dae5b3a47b34303b057689b8d323fcca791595a1b68f83756662503 WHIRLPOOL c57897038a0549f036d7a2249512723807ff3a87871f65934d77de56738d715cb6fa95b4f9bd4458910917f33ba01dd28148f3d38fe9e2e400d6ef82db8b0552 MISC metadata.xml 546 SHA256 980db453ce3112b91daa26f61bbc8eec61d12d0998d0bf76a1308aecad499c42 SHA512 33e25501a30e8cb8e890c1dbf98f5d5264a7958f7d710d37d4ee36efbb318d0db23533fefd51ca419cdc6f72416c1d0cc4fd3b1e68a157dca14890d54f411df6 WHIRLPOOL c96639028769b95ba23db8e8e20d71f5894b1ecebd6d3e62effc610d48e2c55797fa3536dea6e654185f288dd8edb6a2a063829598703f0f0ca61aa02f995314 -----BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.19 (GNU/Linux) +Version: GnuPG v2.0.20 (GNU/Linux) -iQIcBAEBCAAGBQJRpVX9AAoJECDuEZm+6Exk1+UQAKseI08vDcfI7A46lOuqt2kf -l+S1AYWYQhhqLPhRRNe6/p7fd3n3Ft7xC0bkOvXsatu0rdOTqMNV41ojTPsirjjI -gc3FYp+Qp1lIZDhCOBcej1bCyReoGhVAFwDMMve6oljMpBlz9niIGYd4qKpv8ACt -qndy6x4xRH/cvCpWil9dww6n0fMNlNGMY+9D5C2oSccCnvfQW9pkle0E1rCZgQ76 -KFNytBg+p+XPKJOAtvrKxi2KWTt38Whc+w3qIqRrKVcsdo5+nm6W24MpdHscAn51 -jFLPeAj6sZZJMffYS/kcGAupJXARu/BQMiTSxcpLRQgARymgTEZUqPZsXwIYsYqM -Z+sY6JvF541m2a2YqRFPlxGV2a81rz+GjZ/osnEwPJu0ibCMmvh9heO4Wbn55wq0 -EcIH83/wwzhrBfC5NFUaCatSJcK7EHFdbFP1ybv56buHJ2D/Kk8fw9kkf8TRqFwV -cHUzv/6pmYDoUBVOTnN9eFln8bGrbemmEn/B2GVJAXN19kw0YIv40ZkyJC9J2Kul -KvSiiEqoP2uZ9mRXpHl5iHNznvmqtBALdQb34iJD8Nj+GmfGdVbF048CpKbvAbHk -I3nQ76eob0MSea23FvHyEDxEsiLKCMcrEaSVCle6tpZFv+vecD3vpoNJ6ACvKC1W -dd9KkMIa3NQrBWDKCk1P -=oWQr +iQIcBAEBCAAGBQJR4pEVAAoJECDuEZm+6ExkyGAP/0QhxJY1dwbkJzopL3SR+02W +42219pw81NV584zJyCfBrftRleLlDyPSuz/D83Yk+drdE9SbYKwUSWclWMQXYSDp +X5duFef2yYsJuZFRmppcuyNWtx52mX8YfB7pZncJgTJ74WnBiTAQUDHX5HgjOSAU +QtVC9SMa+F9+WIyfDFULV9BCmbFyrAOLpXomfasW1H1N9HtQ9BamvaBy0IDLvNZW +CyL2pPpk/PY5dRbSTBqDYsL+NmIuLTrnD2SOSLgI4AeeKPZnVCB4CJdCLPOxdMjv +x9uUV8I/ZFsYiYILw6frInhSyiQSUEP0ngi7mYNis1ZcUjCOardT4mSO0+l31KEC +Ds/AbnYGlCb57mj356Oo7x6X9JLVfgsgZ/DsvkvEs/BjOW7OFKaBTiwkr0P+cWRM +2S6m6imWfd90owMTtKjLVVKzcA0kUrtZzPUygL7KlyG9/OnXnJEQ49FBA8gZn71j +KNXxgcAXwTYjaen67vnWIcZrOdeXp3sYpR2np/CBUpK0GEMTivVi33aLE59QImzE +cugPrucW2RfsC8NhJ+Wf7Hm2vpVufpfEP+MzSX8qliBczAytuGQKiYTLu3/1n3r7 +HIZhvu9p2huZI44ENG9G5pL1+1GL8yoD1Aa+U5GW8wOL8Im73JpYd4588lQkY9UT +JDwXI4UEVGc41Uf4qd9o +=VNI6 -----END PGP SIGNATURE----- diff --git a/sys-fs/zfs/files/zfs-0.6.1-avoid-zdb-abort.patch b/sys-fs/zfs/files/zfs-0.6.1-avoid-zdb-abort.patch new file mode 100644 index 000000000000..f73840feeed6 --- /dev/null +++ b/sys-fs/zfs/files/zfs-0.6.1-avoid-zdb-abort.patch @@ -0,0 +1,30 @@ +From 5d3dc3fb72518a4c191e3a014622b74365eb3a74 Mon Sep 17 00:00:00 2001 +From: Mike Leddy <mike.leddy@gmail.com> +Date: Thu, 4 Jul 2013 01:02:05 -0300 +Subject: [PATCH] Avoid abort() in vn_rdwr(): libzpool/kernel.c + +Make sure that buffer is aligned to 512 bytes on linux so that +pread call combined with O_DIRECT does not return EINVAL. + +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Closes #1570 +--- + cmd/zdb/zdb.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmd/zdb/zdb.c b/cmd/zdb/zdb.c +index 936974b..a2b6bfe 100644 +--- a/cmd/zdb/zdb.c ++++ b/cmd/zdb/zdb.c +@@ -2844,7 +2844,7 @@ + psize = size; + lsize = size; + +- pbuf = umem_alloc(SPA_MAXBLOCKSIZE, UMEM_NOFAIL); ++ pbuf = umem_alloc_aligned(SPA_MAXBLOCKSIZE, 512, UMEM_NOFAIL); + lbuf = umem_alloc(SPA_MAXBLOCKSIZE, UMEM_NOFAIL); + + BP_ZERO(bp); +-- +1.8.1.6 + diff --git a/sys-fs/zfs/files/zfs-0.6.1-fix-gcc-4.8-warning.patch b/sys-fs/zfs/files/zfs-0.6.1-fix-gcc-4.8-warning.patch new file mode 100644 index 000000000000..00ec1057efa1 --- /dev/null +++ b/sys-fs/zfs/files/zfs-0.6.1-fix-gcc-4.8-warning.patch @@ -0,0 +1,42 @@ +From 3db3ff4a787acf068b122562fb5be5aecec2611f Mon Sep 17 00:00:00 2001 +From: Richard Yao <ryao@gentoo.org> +Date: Tue, 2 Jul 2013 00:07:15 -0400 +Subject: [PATCH] Use MAXPATHLEN instead of sizeof in snprintf +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This silences a GCC 4.8.0 warning by fixing a programming error +caught by static analysis: + +../../cmd/ztest/ztest.c: In function ‘ztest_vdev_aux_add_remove’: +../../cmd/ztest/ztest.c:2584:33: error: argument to ‘sizeof’ + in ‘snprintf’ call is the same expression as the destination; + did you mean to provide an explicit length? + [-Werror=sizeof-pointer-memaccess] + (void) snprintf(path, sizeof (path), ztest_aux_template, + ^ + +Signed-off-by: Richard Yao <ryao@gentoo.org> +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Closes #1480 +--- + cmd/ztest/ztest.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmd/ztest/ztest.c b/cmd/ztest/ztest.c +index b38d7b1..93a5f1e 100644 +--- a/cmd/ztest/ztest.c ++++ b/cmd/ztest/ztest.c +@@ -2581,7 +2581,7 @@ enum ztest_object { + zs->zs_vdev_aux = 0; + for (;;) { + int c; +- (void) snprintf(path, sizeof (path), ztest_aux_template, ++ (void) snprintf(path, MAXPATHLEN, ztest_aux_template, + ztest_opts.zo_dir, ztest_opts.zo_pool, aux, + zs->zs_vdev_aux); + for (c = 0; c < sav->sav_count; c++) +-- +1.8.1.6 + diff --git a/sys-fs/zfs/files/zfs-0.6.1-fix-zvol-initialization-r1.patch b/sys-fs/zfs/files/zfs-0.6.1-fix-zvol-initialization-r1.patch new file mode 100644 index 000000000000..b1e7d3736db0 --- /dev/null +++ b/sys-fs/zfs/files/zfs-0.6.1-fix-zvol-initialization-r1.patch @@ -0,0 +1,167 @@ +diff --git a/module/zfs/spa.c b/module/zfs/spa.c +index e986e92..65f78b7 100644 +--- a/module/zfs/spa.c ++++ b/module/zfs/spa.c +@@ -64,6 +64,7 @@ + #include <sys/zfs_ioctl.h> + #include <sys/dsl_scan.h> + #include <sys/zfeature.h> ++#include <sys/zvol.h> + + #ifdef _KERNEL + #include <sys/bootprops.h> +@@ -2856,6 +2857,7 @@ spa_open_common(const char *pool, spa_t **spapp, void *tag, nvlist_t *nvpolicy, + spa_load_state_t state = SPA_LOAD_OPEN; + int error; + int locked = B_FALSE; ++ int firstopen = B_FALSE; + + *spapp = NULL; + +@@ -2879,6 +2881,8 @@ spa_open_common(const char *pool, spa_t **spapp, void *tag, nvlist_t *nvpolicy, + if (spa->spa_state == POOL_STATE_UNINITIALIZED) { + zpool_rewind_policy_t policy; + ++ firstopen = B_TRUE; ++ + zpool_get_rewind_policy(nvpolicy ? nvpolicy : spa->spa_config, + &policy); + if (policy.zrp_request & ZPOOL_DO_REWIND) +@@ -2953,6 +2957,11 @@ spa_open_common(const char *pool, spa_t **spapp, void *tag, nvlist_t *nvpolicy, + mutex_exit(&spa_namespace_lock); + } + ++#ifdef _KERNEL ++ if (firstopen) ++ zvol_create_minors(spa->spa_name); ++#endif ++ + *spapp = spa; + + return (0); +@@ -4010,6 +4019,10 @@ spa_import(const char *pool, nvlist_t *config, nvlist_t *props, uint64_t flags) + mutex_exit(&spa_namespace_lock); + spa_history_log_version(spa, LOG_POOL_IMPORT); + ++#ifdef _KERNEL ++ zvol_create_minors(pool); ++#endif ++ + return (0); + } + +diff --git a/module/zfs/zfs_ioctl.c b/module/zfs/zfs_ioctl.c +index 1226b2c..a9184a1 100644 +--- a/module/zfs/zfs_ioctl.c ++++ b/module/zfs/zfs_ioctl.c +@@ -1268,9 +1268,6 @@ zfs_ioc_pool_import(zfs_cmd_t *zc) + error = err; + } + +- if (error == 0) +- zvol_create_minors(zc->zc_name); +- + nvlist_free(config); + + if (props) +diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c +index 43a7bb6..e35c91b 100644 +--- a/module/zfs/zvol.c ++++ b/module/zfs/zvol.c +@@ -1215,6 +1215,9 @@ zvol_alloc(dev_t dev, const char *name) + + zv = kmem_zalloc(sizeof (zvol_state_t), KM_SLEEP); + ++ spin_lock_init(&zv->zv_lock); ++ list_link_init(&zv->zv_next); ++ + zv->zv_queue = blk_init_queue(zvol_request, &zv->zv_lock); + if (zv->zv_queue == NULL) + goto out_kmem; +@@ -1248,9 +1251,6 @@ zvol_alloc(dev_t dev, const char *name) + sizeof (rl_t), offsetof(rl_t, r_node)); + zv->zv_znode.z_is_zvol = TRUE; + +- spin_lock_init(&zv->zv_lock); +- list_link_init(&zv->zv_next); +- + zv->zv_disk->major = zvol_major; + zv->zv_disk->first_minor = (dev & MINORMASK); + zv->zv_disk->fops = &zvol_ops; +@@ -1561,30 +1561,36 @@ zvol_init(void) + { + int error; + ++ list_create(&zvol_state_list, sizeof (zvol_state_t), ++ offsetof(zvol_state_t, zv_next)); ++ mutex_init(&zvol_state_lock, NULL, MUTEX_DEFAULT, NULL); ++ + zvol_taskq = taskq_create(ZVOL_DRIVER, zvol_threads, maxclsyspri, + zvol_threads, INT_MAX, TASKQ_PREPOPULATE); + if (zvol_taskq == NULL) { + printk(KERN_INFO "ZFS: taskq_create() failed\n"); +- return (-ENOMEM); ++ error = -ENOMEM; ++ goto out1; + } + + error = register_blkdev(zvol_major, ZVOL_DRIVER); + if (error) { + printk(KERN_INFO "ZFS: register_blkdev() failed %d\n", error); +- taskq_destroy(zvol_taskq); +- return (error); ++ goto out2; + } + + blk_register_region(MKDEV(zvol_major, 0), 1UL << MINORBITS, + THIS_MODULE, zvol_probe, NULL, NULL); + +- mutex_init(&zvol_state_lock, NULL, MUTEX_DEFAULT, NULL); +- list_create(&zvol_state_list, sizeof (zvol_state_t), +- offsetof(zvol_state_t, zv_next)); ++ return (0); + +- (void) zvol_create_minors(NULL); ++out2: ++ taskq_destroy(zvol_taskq); ++out1: ++ mutex_destroy(&zvol_state_lock); ++ list_destroy(&zvol_state_list); + +- return (0); ++ return (error); + } + + void +diff --git a/scripts/zconfig.sh b/scripts/zconfig.sh +index 141348c..281166c 100755 +--- a/scripts/zconfig.sh ++++ b/scripts/zconfig.sh +@@ -264,8 +264,9 @@ test_4() { + zconfig_zvol_device_stat 0 ${POOL_NAME} ${FULL_ZVOL_NAME} \ + ${FULL_SNAP_NAME} ${FULL_CLONE_NAME} || fail 9 + +- # Load the modules, wait 1 second for udev ++ # Load the modules, list the pools to ensure they are opened + ${ZFS_SH} zfs="spa_config_path=${TMP_CACHE}" || fail 10 ++ ${ZPOOL} list &>/dev/null + + # Verify the devices were created + zconfig_zvol_device_stat 10 ${POOL_NAME} ${FULL_ZVOL_NAME} \ +diff --git a/udev/rules.d/90-zfs.rules.in b/udev/rules.d/90-zfs.rules.in +index 52e1d63..a2715d2 100644 +--- a/udev/rules.d/90-zfs.rules.in ++++ b/udev/rules.d/90-zfs.rules.in +@@ -1,4 +1,4 @@ +-SUBSYSTEM!="block", GOTO="zfs_end" ++SUBSYSTEM!="block|misc", GOTO="zfs_end" + ACTION!="add|change", GOTO="zfs_end" + + ENV{ID_FS_TYPE}=="zfs", RUN+="/sbin/modprobe zfs" +@@ -7,4 +7,6 @@ ENV{ID_FS_TYPE}=="zfs_member", RUN+="/sbin/modprobe zfs" + KERNEL=="null", SYMLINK+="root" + SYMLINK=="null", SYMLINK+="root" + ++SUBSYSTEM=="misc", KERNEL=="zfs", RUN+="@sbindir@/zpool list" ++ + LABEL="zfs_end" diff --git a/sys-fs/zfs/files/zfs-init.sh.in b/sys-fs/zfs/files/zfs-init.sh.in new file mode 100644 index 000000000000..ed84585cd5f6 --- /dev/null +++ b/sys-fs/zfs/files/zfs-init.sh.in @@ -0,0 +1,29 @@ +#!/bin/sh + +ZFS="@sbindir@/zfs" +ZPOOL="@sbindir@/zpool" +ZPOOL_CACHE="@sysconfdir@/zfs/zpool.cache" + +if [ -f "${ZPOOL_CACHE}" ]; then + "${ZPOOL}" import -c "${ZPOOL_CACHE}" -aN 2>/dev/null + if [ "${?}" != "0" ]; then + echo "Failed to import not-yet imported pools." >&2 + fi +fi + +echo "Mounting ZFS filesystems" +"${ZFS}" mount -a +if [ "${?}" != "0" ]; then + echo "Failed to mount ZFS filesystems." >&2 + exit 1 +fi + +echo "Exporting ZFS filesystems" +"${ZFS}" share -a +if [ "${?}" != "0" ]; then + echo "Failed to export ZFS filesystems." >&2 + exit 1 +fi + +exit 0 + diff --git a/sys-fs/zfs/files/zfs.service.in b/sys-fs/zfs/files/zfs.service.in new file mode 100644 index 000000000000..4e510a8f4d21 --- /dev/null +++ b/sys-fs/zfs/files/zfs.service.in @@ -0,0 +1,16 @@ +[Unit] +Description=ZFS filesystems setup +Before=network.target +After=systemd-udev-settle.target local-fs.target + +[Service] +Type=oneshot +RemainAfterExit=true +ExecStartPre=/sbin/modprobe zfs +ExecStartPre=/usr/bin/test -c /dev/zfs +ExecStart=/usr/libexec/zfs-init.sh +ExecStop=@sbindir@/zfs umount -a + +[Install] +WantedBy=multi-user.target + diff --git a/sys-fs/zfs/zfs-0.6.1-r2.ebuild b/sys-fs/zfs/zfs-0.6.1-r2.ebuild new file mode 100644 index 000000000000..3aef5bcc5f8e --- /dev/null +++ b/sys-fs/zfs/zfs-0.6.1-r2.ebuild @@ -0,0 +1,154 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs/zfs-0.6.1-r2.ebuild,v 1.1 2013/07/14 11:52:50 ryao Exp $ + +EAPI="4" + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +if [ ${PV} == "9999" ] ; then + inherit git-2 linux-mod + EGIT_REPO_URI="git://github.com/zfsonlinux/${PN}.git" +else + inherit eutils versionator + MY_PV=$(replace_version_separator 3 '-') + SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${PN}-${MY_PV}.tar.gz" + S="${WORKDIR}/${PN}-${PN}-${MY_PV}" + KEYWORDS="~amd64" +fi + +inherit bash-completion-r1 flag-o-matic toolchain-funcs autotools-utils udev + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="BSD-2 CDDL MIT" +SLOT="0" +IUSE="bash-completion custom-cflags kernel-builtin +rootfs selinux test-suite static-libs" +RESTRICT="test" + +COMMON_DEPEND=" + selinux? ( sys-libs/libselinux ) + sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?] + virtual/awk +" +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig +" + +RDEPEND="${COMMON_DEPEND} + !=sys-apps/grep-2.13* + !kernel-builtin? ( =sys-fs/zfs-kmod-${PV}* ) + !sys-fs/zfs-fuse + !prefix? ( virtual/udev ) + test-suite? ( + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + !<sys-boot/grub-2.00-r2:2 + ) +" + +pkg_setup() { + : +} + +src_prepare() { + if [ ${PV} != "9999" ] + then + # Fix OpenRC dependencies + epatch "${FILESDIR}/${P}-gentoo-openrc-dependencies.patch" + + # Make zvol initialization asynchronous + epatch "${FILESDIR}/${P}-fix-zvol-initialization-r1.patch" + + # Use MAXPATHLEN to silence GCC 4.8 warning + epatch "${FILESDIR}/${P}-fix-gcc-4.8-warning.patch" + + # Avoid zdb abort + epatch "${FILESDIR}/${P}-avoid-zdb-abort.patch" + fi + + # Update paths + sed -e "s|/sbin/lsmod|/bin/lsmod|" \ + -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ + -e "s|/sbin/parted|/usr/sbin/parted|" \ + -i scripts/common.sh.in + + autotools-utils_src_prepare +} + +src_configure() { + use custom-cflags || strip-flags + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(udev_get_udevdir)" + $(use_with selinux) + ) + autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die +} + +src_install() { + autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs + rm -rf "${ED}usr/lib/dracut" + use test-suite || rm -rf "${ED}usr/share/zfs" + + use bash-completion && newbashcomp "${FILESDIR}/bash-completion" zfs + + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" +} + +pkg_postinst() { + + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + einfo "Adding ${P} to the module database to ensure that the" + einfo "kernel modules and userland utilities stay in sync." + update_moduledb + fi + + [ -e "${EROOT}/etc/runlevels/boot/zfs" ] \ + || ewarn 'You should add zfs to the boot runlevel.' + + if [ -e "${EROOT}/etc/runlevels/shutdown/zfs-shutdown" ] + then + einfo "The zfs-shutdown script is obsolete. Removing it from runlevel." + rm "${EROOT}/etc/runlevels/shutdown/zfs-shutdown" + fi + +} + +pkg_postrm() { + if ! use kernel-builtin && [ ${PV} = "9999" ] + then + remove_moduledb + fi +} diff --git a/sys-fs/zfs/zfs-9999.ebuild b/sys-fs/zfs/zfs-9999.ebuild index 6711c511b9f5..8195b497c509 100644 --- a/sys-fs/zfs/zfs-9999.ebuild +++ b/sys-fs/zfs/zfs-9999.ebuild @@ -1,8 +1,11 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs/zfs-9999.ebuild,v 1.44 2013/02/06 01:48:50 ryao Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-fs/zfs/zfs-9999.ebuild,v 1.45 2013/07/14 11:52:50 ryao Exp $ -EAPI="4" +EAPI="5" +PYTHON_COMPAT=( python{2_5,2_6,2_7} ) + +inherit python-single-r1 AT_M4DIR="config" AUTOTOOLS_AUTORECONF="1" @@ -26,10 +29,11 @@ HOMEPAGE="http://zfsonlinux.org/" LICENSE="BSD-2 CDDL MIT" SLOT="0" -IUSE="custom-cflags kernel-builtin +rootfs test-suite static-libs" +IUSE="bash-completion custom-cflags kernel-builtin +rootfs selinux test-suite static-libs" RESTRICT="test" COMMON_DEPEND=" + selinux? ( sys-libs/libselinux ) sys-apps/util-linux[static-libs?] sys-libs/zlib[static-libs(+)?] virtual/awk @@ -64,17 +68,18 @@ pkg_setup() { } src_prepare() { + if [ ${PV} != "9999" ] + then + # Fix OpenRC dependencies + epatch "${FILESDIR}/${P}-gentoo-openrc-dependencies.patch" + fi + # Update paths sed -e "s|/sbin/lsmod|/bin/lsmod|" \ -e "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" \ -e "s|/sbin/parted|/usr/sbin/parted|" \ -i scripts/common.sh.in - if [ ${PV} != "9999" ] - then - epatch "${FILESDIR}/${P}-fix-libzpool-function-relocations.patch" - fi - autotools-utils_src_prepare } @@ -87,18 +92,32 @@ src_configure() { --with-linux="${KV_DIR}" --with-linux-obj="${KV_OUT_DIR}" --with-udevdir="$(udev_get_udevdir)" + $(use_with selinux) ) autotools-utils_src_configure + + # prepare systemd unit and helper script + cat "${FILESDIR}/zfs.service.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs.service" || die + cat "${FILESDIR}/zfs-init.sh.in" | \ + sed -e "s:@sbindir@:${EPREFIX}/sbin:g" \ + -e "s:@sysconfdir@:${EPREFIX}/etc:g" \ + > "${T}/zfs-init.sh" || die } src_install() { autotools-utils_src_install gen_usr_ldscript -a uutil nvpair zpool zfs - rm -rf "${ED}usr/share/dracut" - use test-suite || rm -rf "${ED}usr/libexec" + rm -rf "${ED}usr/lib/dracut" + use test-suite || rm -rf "${ED}usr/share/zfs" - newbashcomp "${FILESDIR}/bash-completion" zfs + use bash-completion && newbashcomp "${FILESDIR}/bash-completion" zfs + exeinto /usr/libexec + doexe "${T}/zfs-init.sh" + systemd_dounit "${T}/zfs.service" } pkg_postinst() { |