[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#479721: FTBFS with 2.6.25-1



I made an NMU with the upstream patch.  Here's the debdiff:

diff -u redhat-cluster-2.20080229/debian/changelog redhat-cluster-2.20080229/debian/changelog
--- redhat-cluster-2.20080229/debian/changelog
+++ redhat-cluster-2.20080229/debian/changelog
@@ -1,3 +1,11 @@
+redhat-cluster (2.20080229-1.1) unstable; urgency=low
+
+  * Non-maintainer upload
+  * Added upstream patch for compatibility with Linux 2.6.25.
+    Closes: #479721.
+
+ -- Ben Hutchings <ben@decadent.org.uk>  Mon, 19 May 2008 23:46:03 +0100
+
 redhat-cluster (2.20080229-1) unstable; urgency=low
 
   [ Christian Perrier ]  
only in patch2:
unchanged:
--- redhat-cluster-2.20080229.orig/debian/patches/00list
+++ redhat-cluster-2.20080229/debian/patches/00list
@@ -0,0 +1 @@
+2.6.25
only in patch2:
unchanged:
--- redhat-cluster-2.20080229.orig/debian/patches/2.6.25.dpatch
+++ redhat-cluster-2.20080229/debian/patches/2.6.25.dpatch
@@ -0,0 +1,149 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Upstream changes for compatibility with Linux 2.6.25
+## DP: (git commit e80c1ff7cfb63e247a4479c4a20f65d373d99b62):
+## DP: [KERNEL] Update modules to build with 2.6.25
+## DP: Update clean target to cope with a new file that Kbuild creates at build time.
+## DP: Bump minimum kernel requirements to 2.6.25.
+## DP: Port modules to new kobj api.
+## DP: Signed-off-by: Fabio M. Di Nitto <fabbione@fabbione.net>
+
+@DPATCH@
+diff --git a/configure b/configure
+index 13ed3e6..2501059 100755
+--- a/configure
++++ b/configure
+@@ -28,7 +28,7 @@ my $ret = 0;
+ 
+ # this should be only the major version without the extra version 
+ # eg. only the first 3 digits
+-my $required_kernelversion = '2.6.24';
++my $required_kernelversion = '2.6.25';
+ 
+ my %options = (
+ 	help => \$help,
+diff --git a/gfs-kernel/src/gfs/sys.c b/gfs-kernel/src/gfs/sys.c
+index de64a3f..8afbebd 100644
+--- a/gfs-kernel/src/gfs/sys.c
++++ b/gfs-kernel/src/gfs/sys.c
+@@ -85,24 +85,20 @@ static struct kobj_type gfs_ktype = {
+ 	.sysfs_ops     = &gfs_attr_ops,
+ };
+ 
+-static struct kset gfs_kset = {
+-	.ktype  = &gfs_ktype,
+-};
++static struct kset *gfs_kset;
+ 
+ int gfs_sys_fs_add(struct gfs_sbd *sdp)
+ {
+ 	int error;
+ 
+-	sdp->sd_kobj.kset = &gfs_kset;
+-	sdp->sd_kobj.ktype = &gfs_ktype;
++	sdp->sd_kobj.kset = gfs_kset;
+ 
+-	error = kobject_set_name(&sdp->sd_kobj, "%s", sdp->sd_table_name);
++	error = kobject_init_and_add(&sdp->sd_kobj, &gfs_ktype, NULL,
++				     "%s", sdp->sd_table_name);
+ 	if (error)
+ 		goto fail;
+ 
+-	error = kobject_register(&sdp->sd_kobj);
+-	if (error)
+-		goto fail;
++	kobject_uevent(&sdp->sd_kobj, KOBJ_ADD);
+ 
+ 	return 0;
+ 
+@@ -112,20 +108,21 @@ int gfs_sys_fs_add(struct gfs_sbd *sdp)
+ 
+ void gfs_sys_fs_del(struct gfs_sbd *sdp)
+ {
+-	kobject_unregister(&sdp->sd_kobj);
++	kobject_put(&sdp->sd_kobj);
+ }
+ 
+ int gfs_sys_init(void)
+ {
+ 	gfs_sys_margs = NULL;
+ 	spin_lock_init(&gfs_sys_margs_lock);
+-	kobject_set_name(&gfs_kset.kobj, "gfs");
+-	kobj_set_kset_s(&gfs_kset, fs_subsys);
+-	return kset_register(&gfs_kset);
++	gfs_kset = kset_create_and_add("gfs", NULL, fs_kobj);
++	if (!gfs_kset)
++		return -ENOMEM;
++	return 0;
+ }
+ 
+ void gfs_sys_uninit(void)
+ {
+ 	kfree(gfs_sys_margs);
+-	kset_unregister(&gfs_kset);
++	kset_unregister(gfs_kset);
+ }
+diff --git a/gnbd-kernel/src/gnbd.c b/gnbd-kernel/src/gnbd.c
+index 1be2eee..9a6abe3 100644
+--- a/gnbd-kernel/src/gnbd.c
++++ b/gnbd-kernel/src/gnbd.c
+@@ -266,21 +266,19 @@ static const char *gnbdcmd_to_ascii(int cmd)
+ 
+ static void gnbd_end_request(struct request *req)
+ {
+-	int uptodate = (req->errors == 0) ? 1 : 0;
++	int error = req->errors ? -EIO : 0;
+ 	struct request_queue *q = req->q;
+ 	unsigned long flags;
+ 
+ 	dprintk(DBG_BLKDEV, "%s: request %p: %s\n", req->rq_disk->disk_name,
+-			req, uptodate? "done": "failed");
++			req, error ? "failed" : "done");
+ 
+-	if (!uptodate)
++	if (error)
+ 		printk("%s %d called gnbd_end_request with an error\n",
+ 		       current->comm, current->pid);	
+ 	
+ 	spin_lock_irqsave(q->queue_lock, flags);
+-	if (!end_that_request_first(req, uptodate, req->nr_sectors)) {
+-		end_that_request_last(req, uptodate);
+-	}
++	__blk_end_request(req, error, req->nr_sectors << 9);
+ 	spin_unlock_irqrestore(q->queue_lock, flags);
+ }
+ 
+@@ -879,10 +877,8 @@ static int __init gnbd_init(void)
+ 	struct timeval tv;
+ 	int i;
+ 
+-	if (sizeof(struct gnbd_request) != 28) {
+-		printk(KERN_CRIT "gnbd: sizeof gnbd_request needs to be 28 in order to work!\n" );
+-		return -EIO;
+-	}
++	BUILD_BUG_ON(sizeof(struct gnbd_request) != 28);
++
+ 	shutdown_req.cmd_type = REQ_TYPE_SPECIAL;
+ 	gnbd_cmd(&shutdown_req) = GNBD_CMD_DISC;
+ 	shutdown_req.sector = 0;
+@@ -984,7 +980,7 @@ static int __init gnbd_init(void)
+ 		set_capacity(disk, 0);
+ 		add_disk(disk);
+ 		if(sysfs_create_link(&gnbd_dev[i].class_dev.kobj,
+-					&gnbd_dev[i].disk->kobj, "block"))
++					&gnbd_dev[i].disk->dev.kobj, "block"))
+ 			goto out_remove_disk;
+ 		
+ 	}
+diff --git a/make/clean.mk b/make/clean.mk
+index 68a0980..ac5f603 100644
+--- a/make/clean.mk
++++ b/make/clean.mk
+@@ -1,6 +1,6 @@
+ generalclean:
+ 	rm -rf *~* *.o *.a *.so *.so.* a.out *.po *.s *.d
+ 	rm -rf core core.* .depend cscope.* *.orig *.rej
+-	rm -rf linux .*.o.cmd .*.ko.cmd *.mod.c .tmp_versions Module.symvers .*.o.d
++	rm -rf linux .*.o.cmd .*.ko.cmd *.mod.c .tmp_versions Module.symvers .*.o.d modules.order
+ 	rm -rf ${TARGET} ${TARGETS} ${TARGET}_test
+ 	rm -rf ${TARGET1} ${TARGET2} ${TARGET3} ${TARGET4} ${TARGET5} ${TARGET6}
--- END ---

-- 
Ben Hutchings
One of the nice things about standards is that there are so many of them.

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: