[DRBD-cvs] drbd by lars; remaining parts of my "03-bio.diff" whic...

drbd-user@lists.linbit.com drbd-user@lists.linbit.com
Sun, 25 Jan 2004 01:38:14 +0100 (CET)


DRBD CVS committal

Author  : lars
Module  : drbd

Dir     : drbd/drbd


Modified Files:
      Tag: rel-0_7-branch
	drbd_actlog.c drbd_compat_wrappers.h drbd_fs.c drbd_main.c 
	drbd_req-2.4.c lru_cache.c mempool-2.4.c 


Log Message:
remaining parts of my "03-bio.diff"
which somehow got lost (or I forgot to attach?)
have a nice sunday!


===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_actlog.c,v
retrieving revision 1.1.2.60
retrieving revision 1.1.2.61
diff -u -3 -r1.1.2.60 -r1.1.2.61
--- drbd_actlog.c	24 Jan 2004 17:59:10 -0000	1.1.2.60
+++ drbd_actlog.c	25 Jan 2004 00:38:09 -0000	1.1.2.61
@@ -520,8 +520,11 @@
 			// since drbd_rs_begin_io() pulled it already in.
 			ext->rs_left = bm_count_sectors(mdev->mbds_id,enr);
 			lc_changed(mdev->resync,&ext->lce);
+			// wake_up(&mdev->al_wait);
 		}
 		lc_put(mdev->resync,&ext->lce);
+		// if (!lc_put(mdev->resync,&ext->lce))
+		//	wake_up(&mdev->al_wait);
 	} else {
 		ERR("lc_get() failed! Probabely something stays"
 		    " dirty in the on disk BM\n");
@@ -540,10 +543,13 @@
 			udw->w.cb = w_update_odbm;
 			drbd_queue_work(mdev,&mdev->data.work,&udw->w);
 			lc_del(mdev->resync,&ext->lce);
+			// wake_up(&mdev->al_wait);
 		}
 	}
 
 	spin_unlock_irqrestore(&mdev->al_lock,flags);
+	// just wake_up unconditional now.
+	wake_up(&mdev->al_wait);
 }
 
 void drbd_set_in_sync(drbd_dev* mdev, sector_t sector, int blk_size)
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/drbd_compat_wrappers.h,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -3 -r1.1.2.4 -r1.1.2.5
--- drbd_compat_wrappers.h	24 Jan 2004 18:28:26 -0000	1.1.2.4
+++ drbd_compat_wrappers.h	25 Jan 2004 00:38:09 -0000	1.1.2.5
@@ -398,6 +398,11 @@
 	return 0;
 }
 
+static inline short drbd_bio_get_size(struct buffer_head *bh)
+{
+	return 0;
+}
+
 static inline char *drbd_bio_kmap(struct bio *bio)
 {
 	return NULL;
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_fs.c,v
retrieving revision 1.28.2.50
retrieving revision 1.28.2.51
diff -u -3 -r1.28.2.50 -r1.28.2.51
--- drbd_fs.c	24 Jan 2004 18:28:26 -0000	1.28.2.50
+++ drbd_fs.c	25 Jan 2004 00:38:09 -0000	1.28.2.51
@@ -596,6 +596,10 @@
 );
 
 	switch (cmd) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+/* see how sys_ioctl and blkdev_ioctl handle it in 2.6 .
+ * If I understand correctly, only "private" ioctl end up here.
+ */
 	case BLKGETSIZE:
 		err = put_user(drbd_get_my_capacity(mdev), (long *)arg);
 		break;
@@ -613,10 +617,9 @@
 	case BLKBSZGET:
 	case BLKBSZSET: // THINK do we want to intercept this one ?
 	case BLKPG:
-		NOT_IN_26( err=blk_ioctl(inode->i_rdev, cmd, arg); )
-#warning "FIXME verify this does not create an infine recursion!"
-		ONLY_IN_26( err=blkdev_ioctl(inode, file, cmd, arg); )
+		err=blk_ioctl(inode->i_rdev, cmd, arg);
 		break;
+#endif
 	case DRBD_IOCTL_GET_VERSION:
 		err = put_user(API_VERSION, (int *) arg);
 		break;
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_main.c,v
retrieving revision 1.73.2.105
retrieving revision 1.73.2.106
diff -u -3 -r1.73.2.105 -r1.73.2.106
--- drbd_main.c	24 Jan 2004 18:28:26 -0000	1.73.2.105
+++ drbd_main.c	25 Jan 2004 00:38:09 -0000	1.73.2.106
@@ -130,7 +130,7 @@
 
 #define ARRY_SIZE(A) (sizeof(A)/sizeof(A[0]))
 
-static int errno;
+int errno;
 
 /************************* The transfer log start */
 STATIC void tl_init(drbd_dev *mdev)
@@ -2005,10 +2005,11 @@
 	read_unlock(&tasklist_lock);
 }
 
-#if defined(SIGHAND_HACK) && LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+#ifdef SIGHAND_HACK
 
-// copied from redhat's kernel-2.4.20-13.9 kernel/signal.c
-// to avoid a recompile of the redhat kernel
+/* copied from linux-2.6/kernel/signal.c
+ * because recalc_sigpending_tsk is not exported,
+ * and we still don't use the kernel mechanisms to send signals */
 
 #include <asm/signal.h> // for _NSIG_WORDS
 
@@ -2049,9 +2050,11 @@
         if (t->signal->group_stop_count > 0 ||
             PENDING(&t->pending, &t->blocked) ||
             PENDING(&t->signal->shared_pending, &t->blocked))
-                t->sigpending = 1;
+		NOT_IN_26(t->sigpending = 1;)
+		ONLY_IN_26(set_tsk_thread_flag(t, TIF_SIGPENDING);)
         else
-                t->sigpending = 0;
+		NOT_IN_26(t->sigpending = 0;)
+		ONLY_IN_26(clear_tsk_thread_flag(t, TIF_SIGPENDING);)
 }
 
 #endif
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_req-2.4.c,v
retrieving revision 1.33.2.42
retrieving revision 1.33.2.43
diff -u -3 -r1.33.2.42 -r1.33.2.43
--- drbd_req-2.4.c	24 Jan 2004 18:28:26 -0000	1.33.2.42
+++ drbd_req-2.4.c	25 Jan 2004 00:38:09 -0000	1.33.2.43
@@ -141,7 +141,7 @@
 int drbd_make_request(request_queue_t *q, struct bio *bio)
 #endif
 {
-	struct Drbd_Conf* mdev = 
+	struct Drbd_Conf* mdev =
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
 		drbd_conf + MINOR(bio->b_rdev);
 #else
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/lru_cache.c,v
retrieving revision 1.1.2.20
retrieving revision 1.1.2.21
diff -u -3 -r1.1.2.20 -r1.1.2.21
--- lru_cache.c	12 Jan 2004 09:31:36 -0000	1.1.2.20
+++ lru_cache.c	25 Jan 2004 00:38:09 -0000	1.1.2.21
@@ -26,6 +26,7 @@
 
 #include <linux/bitops.h>
 #include <linux/vmalloc.h>
+#include <asm/string.h>
 #include "lru_cache.h"
 
 #define STATIC static
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd/Attic/mempool-2.4.c,v
retrieving revision 1.1.2.5
retrieving revision 1.1.2.6
diff -u -3 -r1.1.2.5 -r1.1.2.6
--- mempool-2.4.c	2 Oct 2003 08:23:50 -0000	1.1.2.5
+++ mempool-2.4.c	25 Jan 2004 00:38:09 -0000	1.1.2.6
@@ -15,7 +15,7 @@
 #include <linux/module.h>
 #include "mempool.h"
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,19)
+#ifndef BUG_ON
 # define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
 #endif
 
@@ -267,7 +267,9 @@
 	if (gfp_mask == gfp_nowait)
 		return NULL;
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
 	run_task_queue(&tq_disk);
+#endif
 
 	add_wait_queue_exclusive(&pool->wait, &wait);
 	set_task_state(current, TASK_UNINTERRUPTIBLE);