diff options
author | Christian Zoffoli <xmerlin@gentoo.org> | 2008-03-21 01:52:13 +0000 |
---|---|---|
committer | Christian Zoffoli <xmerlin@gentoo.org> | 2008-03-21 01:52:13 +0000 |
commit | 023759983dd41ff822faf85035ce1d6cabb9698b (patch) | |
tree | 876884d934927e4e569ccad1d6de47b27aebe7c2 /sys-cluster/gnbd-kernel | |
parent | Added a missing patch. (diff) | |
download | gentoo-2-023759983dd41ff822faf85035ce1d6cabb9698b.tar.gz gentoo-2-023759983dd41ff822faf85035ce1d6cabb9698b.tar.bz2 gentoo-2-023759983dd41ff822faf85035ce1d6cabb9698b.zip |
Patched gnbd to compile also with kernel >= 2.6.20.
(Portage version: 2.1.4.4)
Diffstat (limited to 'sys-cluster/gnbd-kernel')
3 files changed, 132 insertions, 5 deletions
diff --git a/sys-cluster/gnbd-kernel/ChangeLog b/sys-cluster/gnbd-kernel/ChangeLog index e51baf23f3f5..35c547e040e3 100644 --- a/sys-cluster/gnbd-kernel/ChangeLog +++ b/sys-cluster/gnbd-kernel/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for sys-cluster/gnbd-kernel # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/gnbd-kernel/ChangeLog,v 1.24 2008/03/17 17:05:35 xmerlin Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/gnbd-kernel/ChangeLog,v 1.25 2008/03/21 01:52:13 xmerlin Exp $ + + 21 Mar 2008; Christian Zoffoli <xmerlin@gentoo.org> + +files/gnbd-kernel-2.02.00-compile-fix-kernel-pre-2.6.24.diff, + gnbd-kernel-2.02.00.ebuild: + Patched gnbd to compile also with kernel >= 2.6.20. *gnbd-kernel-2.02.00 (17 Mar 2008) diff --git a/sys-cluster/gnbd-kernel/files/gnbd-kernel-2.02.00-compile-fix-kernel-pre-2.6.24.diff b/sys-cluster/gnbd-kernel/files/gnbd-kernel-2.02.00-compile-fix-kernel-pre-2.6.24.diff new file mode 100644 index 000000000000..8cd1fc77c227 --- /dev/null +++ b/sys-cluster/gnbd-kernel/files/gnbd-kernel-2.02.00-compile-fix-kernel-pre-2.6.24.diff @@ -0,0 +1,118 @@ +diff -uNr cluster-2.02.00.orig/gnbd-kernel/src/gnbd.c cluster-2.02.00/gnbd-kernel/src/gnbd.c +--- cluster-2.02.00.orig/gnbd-kernel/src/gnbd.c 2008-02-26 16:37:43.000000000 +0100 ++++ cluster-2.02.00/gnbd-kernel/src/gnbd.c 2008-03-21 02:40:52.000000000 +0100 +@@ -168,7 +168,7 @@ + + if (down_trylock(&dev->do_it_lock)) + return -EBUSY; +- res = sscanf(buf, "%Lu\n", (unsigned long long int *)&size); ++ res = sscanf(buf, "%Lu\n", &size); + if (res != 1){ + up(&dev->do_it_lock); + return -EINVAL; +@@ -267,7 +267,7 @@ + static void gnbd_end_request(struct request *req) + { + int uptodate = (req->errors == 0) ? 1 : 0; +- struct request_queue *q = req->q; ++ request_queue_t *q = req->q; + unsigned long flags; + + dprintk(DBG_BLKDEV, "%s: request %p: %s\n", req->rq_disk->disk_name, +@@ -369,7 +369,7 @@ + int __gnbd_send_req(struct gnbd_device *dev, struct socket *sock, + struct request *req, int can_signal) + { +- int result, flags; ++ int result, i, flags; + struct gnbd_request request; + unsigned long size = req->nr_sectors << 9; + +@@ -403,26 +403,28 @@ + } + + if (gnbd_cmd(req) == GNBD_CMD_WRITE) { +- struct req_iterator iter; +- struct bio_vec *bvec; ++ struct bio *bio; + /* + * we are really probing at internals to determine + * whether to set MSG_MORE or not... + */ +- rq_for_each_segment(bvec, req, iter) { +- flags = 0; +- if (!rq_iter_last(req, iter)) +- flags = MSG_MORE; +- dprintk(DBG_TX, "%s: request %p: sending %d bytes data\n", +- dev->disk->disk_name, req, +- bvec->bv_len); +- result = sock_send_bvec(sock, bvec, flags, +- can_signal); +- if (result < 0) { +- printk(KERN_ERR "%s: Send data failed (result %d)\n", +- dev->disk->disk_name, +- result); +- goto error_out; ++ rq_for_each_bio(bio, req) { ++ struct bio_vec *bvec; ++ bio_for_each_segment(bvec, bio, i) { ++ flags = 0; ++ if ((i < (bio->bi_vcnt - 1)) || bio->bi_next) ++ flags = MSG_MORE; ++ dprintk(DBG_TX, "%s: request %p: sending %d bytes data\n", ++ dev->disk->disk_name, req, ++ bvec->bv_len); ++ result = sock_send_bvec(sock, bvec, flags, ++ can_signal); ++ if (result < 0) { ++ printk(KERN_ERR "%s: Send data failed (result %d)\n", ++ dev->disk->disk_name, ++ result); ++ goto error_out; ++ } + } + } + } +@@ -462,19 +464,21 @@ + int gnbd_recv_req(struct gnbd_device *dev, struct request *req) + { + int result; +- struct bio_vec *bvec; +- struct req_iterator iter; +- +- rq_for_each_segment(bvec, req, iter) { +- result = sock_recv_bvec(dev->sock, bvec); +- if (result < 0) { +- printk(KERN_ERR "%s: Receive data failed (result %d)\n", +- dev->disk->disk_name, +- result); +- return result; ++ int i; ++ struct bio *bio; ++ rq_for_each_bio(bio, req) { ++ struct bio_vec *bvec; ++ bio_for_each_segment(bvec, bio, i) { ++ result = sock_recv_bvec(dev->sock, bvec); ++ if (result < 0) { ++ printk(KERN_ERR "%s: Receive data failed (result %d)\n", ++ dev->disk->disk_name, ++ result); ++ return result; ++ } ++ dprintk(DBG_RX, "%s: request %p: got %d bytes data\n", ++ dev->disk->disk_name, req, bvec->bv_len); + } +- dprintk(DBG_RX, "%s: request %p: got %d bytes data\n", +- dev->disk->disk_name, req, bvec->bv_len); + } + return 0; + } +@@ -561,7 +565,7 @@ + * { printk( "Warning: Ignoring result!\n"); gnbd_end_request( req ); } + */ + +-static void do_gnbd_request(struct request_queue *q) ++static void do_gnbd_request(request_queue_t * q) + { + int err; + struct request *req; diff --git a/sys-cluster/gnbd-kernel/gnbd-kernel-2.02.00.ebuild b/sys-cluster/gnbd-kernel/gnbd-kernel-2.02.00.ebuild index 9b964b9ffc39..a6ace8d7129b 100644 --- a/sys-cluster/gnbd-kernel/gnbd-kernel-2.02.00.ebuild +++ b/sys-cluster/gnbd-kernel/gnbd-kernel-2.02.00.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/gnbd-kernel/gnbd-kernel-2.02.00.ebuild,v 1.1 2008/03/17 17:05:35 xmerlin Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/gnbd-kernel/gnbd-kernel-2.02.00.ebuild,v 1.2 2008/03/21 01:52:13 xmerlin Exp $ inherit eutils linux-mod linux-info versionator @@ -19,7 +19,7 @@ SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="" -DEPEND="=virtual/linux-sources-2.6.23*" +DEPEND=">=virtual/linux-sources-2.6.20" RDEPEND="${DEPEND}" S="${WORKDIR}/${MY_P}/${PN}" @@ -35,7 +35,11 @@ src_unpack() { unpack ${A} cd "${S}" -# epatch "${FILESDIR}"/${P}-to-cvs-20080217.patch || die + if kernel_is 2 6; then + if [ "$KV_PATCH" -lt "24" ] ; then + epatch "${FILESDIR}"/${P}-compile-fix-kernel-pre-2.6.24.diff || die + fi + fi } src_compile() { @@ -52,7 +56,7 @@ src_compile() { ) || die "configure problem" (cd "${S}"/src; - emake \ + emake clean all \ ) || die "compile problem" } |