diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2013-11-30 20:55:22 +0000 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2013-11-30 20:55:22 +0000 |
commit | 4acfbc6591ac8fb6418926e29cf1e30522e9a760 (patch) | |
tree | 9f4122f6e6b9013a209510017784b77d70ddd914 /sys-fs | |
parent | Port to KDE_HANDBOOK wrt bug #492862. (diff) | |
download | historical-4acfbc6591ac8fb6418926e29cf1e30522e9a760.tar.gz historical-4acfbc6591ac8fb6418926e29cf1e30522e9a760.tar.bz2 historical-4acfbc6591ac8fb6418926e29cf1e30522e9a760.zip |
Fix 'btrfs send' on funky subvol paths (bug #492776 by Thomas Scheiblauer).
Package-Manager: portage-2.2.7_p18/cvs/Linux x86_64
Manifest-Sign-Key: 0x611FF3AA
Diffstat (limited to 'sys-fs')
-rw-r--r-- | sys-fs/btrfs-progs/ChangeLog | 9 | ||||
-rw-r--r-- | sys-fs/btrfs-progs/Manifest | 12 | ||||
-rw-r--r-- | sys-fs/btrfs-progs/btrfs-progs-3.12-r1.ebuild | 58 | ||||
-rw-r--r-- | sys-fs/btrfs-progs/btrfs-progs-9999.ebuild | 3 | ||||
-rw-r--r-- | sys-fs/btrfs-progs/files/btrfs-progs-3.12-fix-send-subvol-492776.patch | 111 |
5 files changed, 186 insertions, 7 deletions
diff --git a/sys-fs/btrfs-progs/ChangeLog b/sys-fs/btrfs-progs/ChangeLog index 6e4a8de59a0e..0b04b15607c6 100644 --- a/sys-fs/btrfs-progs/ChangeLog +++ b/sys-fs/btrfs-progs/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for sys-fs/btrfs-progs # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/btrfs-progs/ChangeLog,v 1.68 2013/11/30 08:40:40 slyfox Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-fs/btrfs-progs/ChangeLog,v 1.69 2013/11/30 20:55:15 slyfox Exp $ + +*btrfs-progs-3.12-r1 (30 Nov 2013) + + 30 Nov 2013; Sergei Trofimovich <slyfox@gentoo.org> + +btrfs-progs-3.12-r1.ebuild, + +files/btrfs-progs-3.12-fix-send-subvol-492776.patch, btrfs-progs-9999.ebuild: + Fix 'btrfs send' on funky subvol paths (bug #492776 by Thomas Scheiblauer). 30 Nov 2013; Sergei Trofimovich <slyfox@gentoo.org> btrfs-progs-3.12.ebuild, btrfs-progs-9999.ebuild: diff --git a/sys-fs/btrfs-progs/Manifest b/sys-fs/btrfs-progs/Manifest index cc3b2b03f08c..b13ad329dc8b 100644 --- a/sys-fs/btrfs-progs/Manifest +++ b/sys-fs/btrfs-progs/Manifest @@ -4,6 +4,7 @@ Hash: SHA256 AUX btrfs-progs-0.19-convert-remove-used-space-update.patch 1005 SHA256 75759924f7d766705c5ea97d4cc2d70962b4c49e7f274465c3c2e9021d481f38 SHA512 ff51a89dfed6149d6e5938a661cd4a4f344706480195b219672ec950a8a1aaad7cdf416163191cccf84944d5b06bfc98d7e784d2ad659daebd3fd4b387174856 WHIRLPOOL e5c683640f5e0ed950fc69b6e8693e93826f1f5e011402d39272ba835f084194f3e5d5abfee2d0ed4b1aee9ad3d927113b01c813363b673c5b22fc5108b8ed92 AUX btrfs-progs-0.19-fix-underlinking.patch 579 SHA256 d79d53eb798c7f504a895e7bf461f801c86937df11d824eefe1ff8721ad88bf4 SHA512 8d6604d195f4757171a4ce5cf017b893a92fff4b90553bf24765278ccefc50bcc1fe9de410562b4451cd4ed9359cb6427c4a80087db2ac37aa1d195371675db2 WHIRLPOOL be41966ed844c05109aeea1e44871191153593343b57408c930ca5ffee1636b41d79669e6901dccdce57653875db7438f8e72c92a6361a21d893403b480091cd AUX btrfs-progs-0.19-glibc212.patch 535 SHA256 c9a1479df01ba8b74b97ecf723d7f2a5e7c347dc0c92ae6676b9d1dc311a6bd1 SHA512 16f2a7e6fd813f4163c954860e47394d8123dd603c379ea4e2efc0a2dea17be925cf8d95c87306bb96395d09572156520cb0ae5af1d465f63752b58f09bce6db WHIRLPOOL f379a59e5e89cbb9dbed090893da939e2a52d4ddc9a9c9df36dfa90e388aa64e19a99c40e6e155a1ec54da50cecfc5233feb3c8bd2effab6621f317751b80fc5 +AUX btrfs-progs-3.12-fix-send-subvol-492776.patch 3099 SHA256 7a149637da9a35c31089cc69e4ad5d3f4beae9fe8f8d44d7a55b75394a6ad27f SHA512 e5d32a084ef706911464cb49c35928ce4a9f3ebaa580502c73dcfb74fa2e0f022bcc05e3fb6e26aa953fff78d792594b044cff342a42fa56a774033e6d59d961 WHIRLPOOL 1026b33cc0f45ae4a8795a81bc54aad48b9550efbde01425d445ae9fbfbddbeff5449cb431581eb9235a0201534198591d244e96c807896adfae3fbfe1624814 DIST btrfs-progs-0.19-redhat.patch.bz2 21699 SHA256 36e581ce32aad7119195a0f5c47d3007d38b3520b92ba3c825baf22f35f17723 SHA512 a3a9809548b61fcd25336789952d83d53a9ad1d221447907b85acd43a68518e3a746de3469bb917f51a49024b99bec1b9e1a46014b460ed8000b3919e3d444a1 WHIRLPOOL 3c33b0a2283cf55d3399609ebeb407567cb3daa60fcf01476b5acd22dd9fb1af7fa228a66d9ef24086543c9383a107811846c741feff503169561de6ef2b06d2 DIST btrfs-progs-0.19.11.tar.bz2 171425 SHA256 b4b510c4106a5b6159f2e51ac685ca700d53693140137e45f67e3767db18b662 SHA512 3704f240f7128bff8c5fc1ce7fd44b4eb985c1cddd7139fa96da0536849bdbbe9b08bbd928c3a20e91c5a0ccd07f60020f6dacb91a6887c2fc73de668477fa99 WHIRLPOOL 7fa6e7fb5566a17bb147ec847f6c1a3a55814a5676b1bf413f9b310de503c5cfef62b3e4b86a4ce28f7ae905416fad44fa802fc75c6cecd51265a9f69cc6175a DIST btrfs-progs-0.19.tar.bz2 118119 SHA256 f8a3dd03e87a33506d16ccc1e5a77c4c38ff1fa84b9502ed4b88c0b39fab70fc SHA512 f0978432b524f307302d80e3a904684c21b6549f0b444f51a17f1d6f0a3dfebfc39ef185c3431a007fb354218aa7027e665ca6a3c58267bb8d0905ae34dc7b80 WHIRLPOOL c11134671eab375b51b190bba9583d7b064486563bdb4a19bd16d27ce7e1812a2b3ab4efc3cce0ce19a60b0d50d96f3110c39ce770cd9535bd839378b68e0be2 @@ -16,14 +17,15 @@ EBUILD btrfs-progs-0.19.11.ebuild 1687 SHA256 93e3661de2904fbc30d6a553b9bf580670 EBUILD btrfs-progs-0.20_rc1.ebuild 1572 SHA256 72aac33b871a604d5f668d2fabcc4e546535410e678d273c8f1ae1864c588bd0 SHA512 b24cb1f56c64fd6bd670ab513be418f8fb59e0d66b9ca74a1f952451a955ac2c83bcb625c12b892eab2b1ea517edd01a24f78c5fa95ea73f9118c052e050f0a8 WHIRLPOOL 2662118584242bc0a39587951946752447fe8f535fd33aa581bd894450a110e7b700009cf6e13360ec1611798845f722a7ab3d75126c274a4e87ecf6c9b94707 EBUILD btrfs-progs-0.20_rc1_p358.ebuild 1079 SHA256 d81f3a95ee67b4466f8e5a342484862a0c22a1d5e99fa95a0577368b5fc79e60 SHA512 94e1171073faf3a041413a38696d1c21344a59e3af7d453d56a70a919f3bdc60a625fd5a78532121ad4a03efc0d6bd9f43df300c6dbc918660c72bda3ae26dde WHIRLPOOL 71a9f7500192b9640d5a58b6bda1c21a729a5c10b605c55c2f602845cd0e1a86fd3ba8cffc79f65ff29b2ea970f1cca8247455ede92ea9d654a71b52af80ef0d EBUILD btrfs-progs-0.20_rc1_p56.ebuild 1039 SHA256 494a3ed6440764f689beceaf5dee28fb071aec2a5f00e104a766aef427a40d8c SHA512 b4f9cda9e4e5cbedfeec3001d95c6356b964de7c3c530ab860104aa855093a59a497a5c69d2056eeb4e75f66b97c02de3f2cadd43205d9b4040a388dfa908282 WHIRLPOOL 157d1b2be6d8b8840117a028570a2e58c66f0ebab56ba465c1edb3109cde4b48ab5a07b9ca4f739b9cf732e26ef76db088e989f62ebafaa54c8e0e5e7aa5e867 +EBUILD btrfs-progs-3.12-r1.ebuild 1304 SHA256 3b3be0c8e38de85f68c8d40495f6540257d2e89452de24270f937aebd7651886 SHA512 f26377fa5e8127135cd8f9104375d5d24e64cb95b6f944729e6da6c9be02b5d344fc733d5c55e021f9231a46dc41acdb579fe0a743d05aec8eb5c7d5953adf53 WHIRLPOOL 4e1b90490f3bb473d20f60d1a685d069491a02d0c4f3397d4a8a9d305bb653a171490321173602cbeeb567a4760b1b8ffe7ce734250ddf6a88c3f8b82b9edc7b EBUILD btrfs-progs-3.12.ebuild 1245 SHA256 8f801a7d5de7b9fffc6f312618a5beeec25d4475d3671faf0a288f757bc22086 SHA512 44ea5d9cd347badfddcbc06298634338c0a492a15083e2b36320de905f38a1c912fd30c37878ff3e3b8753f822a15f2b61b008e5759ca4e5b97cc1935146e978 WHIRLPOOL 7a441dba6b985cd41202256f2fd07d16952244c451bc381fa69a0ab117f3c6587685af755d1ae4958f627715ce5075b736d391631e6b17fc5a055401ab0f7502 -EBUILD btrfs-progs-9999.ebuild 1246 SHA256 90b35e6cb5a8edb6e67488ed99ca46f6f9f23fa2237b50317010aeafb8d9ef47 SHA512 96b1b004c20b0ad3e9e2a49d80ad9140e1b26b7f84e2657d89b38b547a7148c715618919d4706f1884edb87d6beacb24fec6fee6d18f2a0abf48ed2ade7cc678 WHIRLPOOL df409c0c01e0214431770552b720c2c67030555383ecec136cb442182809d3f36b673aad0c3265f72674ce0b01aa7021af3a7f9daf29f1b07291e2e5bf1c1a30 -MISC ChangeLog 10398 SHA256 2d7ebd3d9f40d2e545d1e0ca46f0d6b4d77df581e885575f523a3a5308e3dead SHA512 a2316960db47a695ad24890876b4a97691a67e995713c2443627e40e9c67cce5bc1c670fdf8b0c4883f0d38867bf3942d45a5a51b3957d660f0f171c578984fd WHIRLPOOL 987bb2d2449892eec334993585b33c7d9ca1a932e5c6e63ded6d14aa8222b7cfaed2ceaf7ed24a8da23ad9f5d3370b2b4d1792c5a39d22b3acbfc26fc04be8d3 +EBUILD btrfs-progs-9999.ebuild 1308 SHA256 4f6240f3ed09140fd31ebb57bab8d237099cbc13733aafc25ebbcc9391298d47 SHA512 8da91e8cdf28d5316974cef872cdb538c44d3cafefd646cfdc09caf9a2467ff7570cc6aa02bfa0edf917703e8ec836d95a61264b3a43a3e2018a501a5cc258e3 WHIRLPOOL 58ae395728220c26d9c404717e8fbf5690407a7f5b5540227a22d289993511be89d2607b79256452765da47dc3f5126353f78d83b4d58ccc0cc656fbe95fc87b +MISC ChangeLog 10679 SHA256 212a4f68c91297b5cd0599a015d971659f2024d51b35c432c4461017fe4a8058 SHA512 9d1aeaadbb841ee5d458e04f95174f9162bc71b5a643e335d8c20989ccd00944e0f6b7274b1898b0c8cfd0f60029dc349604dc0fa9ecf36aa940a1a2e6801ef2 WHIRLPOOL 9b8870af23279fa26dd2f3612ec65dd5a49a8816b28d2668f8950dc41325d4fe8c996a4ca7e0dc0493a9ae0bca6fda68a0ffeb51424f069abfce32c1767569aa MISC metadata.xml 432 SHA256 45049c27e84490ae5258d3beaa9c6defe80360aa7f03733da492fd38d026a5e0 SHA512 1dda7aa3a62062d6b42579efff9468c08fcca001b28e180c8257291332ac1874f749a19a4053daec072d7b878c13873557f05d82ad42428f105556c4cd304460 WHIRLPOOL 970b4a981f1afbe87ad4240fc2dd5ebfc4bb134a2e3c188519ecb6a87d230b196a902381de3e6346855e68c6e92f883c4d6b4aa01bcdb090e2de8f230e1cecff -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) -iEYEAREIAAYFAlKZo18ACgkQcaHudmEf86oXAwCfa4A92vHB/StiYqcTKfN/OBwO -Dp0AnixE3ycnhBJY1p+apqtxe+0tkltW -=qG04 +iEYEAREIAAYFAlKaT4kACgkQcaHudmEf86oOnACfU/ZNsOPOdcqrijQ4coFnZzpo +nzwAniUfIJDI3CfWnu8praAzrmVFWG6/ +=pDzu -----END PGP SIGNATURE----- diff --git a/sys-fs/btrfs-progs/btrfs-progs-3.12-r1.ebuild b/sys-fs/btrfs-progs/btrfs-progs-3.12-r1.ebuild new file mode 100644 index 000000000000..2c2a9072aa3d --- /dev/null +++ b/sys-fs/btrfs-progs/btrfs-progs-3.12-r1.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/btrfs-progs/btrfs-progs-3.12-r1.ebuild,v 1.1 2013/11/30 20:55:15 slyfox Exp $ + +EAPI=5 + +inherit eutils multilib toolchain-funcs + +libbtrfs_soname=0 + +if [[ ${PV} != 9999 ]]; then + MY_PV=v${PV} + KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86" + SRC_URI="https://www.kernel.org/pub/linux/kernel/people/mason/${PN}/${PN}-${MY_PV}.tar.xz" + S="${WORKDIR}"/${PN}-${MY_PV} +else + inherit git-2 + EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git + https://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git" +fi + +DESCRIPTION="Btrfs filesystem utilities" +HOMEPAGE="https://btrfs.wiki.kernel.org" + +LICENSE="GPL-2" +SLOT="0/${libbtrfs_soname}" +IUSE="" + +DEPEND=" + dev-libs/lzo + sys-libs/zlib + sys-apps/acl + sys-fs/e2fsprogs +" +RDEPEND="${DEPEND}" + +src_prepare() { + epatch "${FILESDIR}"/${P}-fix-send-subvol-492776.patch + epatch_user +} + +src_compile() { + emake \ + AR="$(tc-getAR)" \ + CC="$(tc-getCC)" \ + CFLAGS="${CFLAGS}" \ + LDFLAGS="${LDFLAGS}" \ + BUILD_VERBOSE=1 +} + +src_install() { + emake install \ + DESTDIR="${D}" \ + prefix=/usr \ + bindir=/sbin \ + libdir=/usr/$(get_libdir) \ + mandir=/usr/share/man +} diff --git a/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild b/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild index 1c898b835cfe..9b6c844193d9 100644 --- a/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild +++ b/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild,v 1.30 2013/11/30 08:40:40 slyfox Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-fs/btrfs-progs/btrfs-progs-9999.ebuild,v 1.31 2013/11/30 20:55:15 slyfox Exp $ EAPI=5 @@ -35,6 +35,7 @@ DEPEND=" RDEPEND="${DEPEND}" src_prepare() { + epatch "${FILESDIR}"/${PN}-3.12-fix-send-subvol-492776.patch epatch_user } diff --git a/sys-fs/btrfs-progs/files/btrfs-progs-3.12-fix-send-subvol-492776.patch b/sys-fs/btrfs-progs/files/btrfs-progs-3.12-fix-send-subvol-492776.patch new file mode 100644 index 000000000000..8a2cc7883a14 --- /dev/null +++ b/sys-fs/btrfs-progs/files/btrfs-progs-3.12-fix-send-subvol-492776.patch @@ -0,0 +1,111 @@ +Gentoo-bug: http://bugs.gentoo.org/492776 + +From: Wang Shilong <wangsl.fnst@cn.fujitsu.com> + +Steps to reproduce: + # mkfs.btrfs -f /dev/sda + # mount /dev/sda /mnt + # btrfs subvolume create /mnt/foo + # umount /mnt + # mount -o subvol=foo /dev/sda /mnt + # btrfs sub snapshot -r /mnt /mnt/snap + # btrfs send /mnt/snap > /dev/null + +We will fail to send '/mnt/snap',this is because btrfs send try to +open '/mnt/snap' by btrfs internal subvolume path 'foo/snap' rather +than relative path based on mounted point, this will return us 'no +such file or directory',this is not right, fix it. + +Reported-by: Thomas Scheiblauer <tom@sharkbay.at> +Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com> +--- +v1->v2: + code cleanups(thanks to Stefan) +--- + cmds-send.c | 34 ++++++---------------------------- + 1 file changed, 6 insertions(+), 28 deletions(-) + +diff --git a/cmds-send.c b/cmds-send.c +index 53e9a53..6fdfd7f 100644 +--- a/cmds-send.c ++++ b/cmds-send.c +@@ -282,31 +282,21 @@ out: + return ERR_PTR(ret); + } + +-static int do_send(struct btrfs_send *send, u64 root_id, u64 parent_root_id, +- int is_first_subvol, int is_last_subvol) ++static int do_send(struct btrfs_send *send, u64 parent_root_id, ++ int is_first_subvol, int is_last_subvol, char *subvol) + { + int ret; + pthread_t t_read; + pthread_attr_t t_attr; + struct btrfs_ioctl_send_args io_send; +- struct subvol_info *si; + void *t_err = NULL; + int subvol_fd = -1; + int pipefd[2] = {-1, -1}; + +- si = subvol_uuid_search(&send->sus, root_id, NULL, 0, NULL, +- subvol_search_by_root_id); +- if (!si) { +- ret = -ENOENT; +- fprintf(stderr, "ERROR: could not find subvol info for %llu", +- root_id); +- goto out; +- } +- +- subvol_fd = openat(send->mnt_fd, si->path, O_RDONLY | O_NOATIME); ++ subvol_fd = openat(send->mnt_fd, subvol, O_RDONLY | O_NOATIME); + if (subvol_fd < 0) { + ret = -errno; +- fprintf(stderr, "ERROR: open %s failed. %s\n", si->path, ++ fprintf(stderr, "ERROR: open %s failed. %s\n", subvol, + strerror(-ret)); + goto out; + } +@@ -385,10 +375,6 @@ out: + close(pipefd[0]); + if (pipefd[1] != -1) + close(pipefd[1]); +- if (si) { +- free(si->path); +- free(si); +- } + return ret; + } + +@@ -664,14 +650,6 @@ int cmd_send(int argc, char **argv) + goto out; + } + +- ret = get_root_id(&send, get_subvol_name(send.root_path, subvol), +- &root_id); +- if (ret < 0) { +- fprintf(stderr, "ERROR: could not resolve root_id " +- "for %s\n", subvol); +- goto out; +- } +- + if (!full_send && !parent_root_id) { + ret = find_good_parent(&send, root_id, &parent_root_id); + if (ret < 0) { +@@ -700,8 +678,8 @@ int cmd_send(int argc, char **argv) + is_first_subvol = 1; + is_last_subvol = 1; + } +- ret = do_send(&send, root_id, parent_root_id, +- is_first_subvol, is_last_subvol); ++ ret = do_send(&send, parent_root_id, is_first_subvol, ++ is_last_subvol, subvol); + if (ret < 0) + goto out; + +-- +1.8.4 + +-- +To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html |