[DRBD-cvs] r1638 - branches/drbd-0.7/drbd
svn at svn.drbd.org
svn at svn.drbd.org
Mon Nov 15 22:45:08 CET 2004
Author: phil
Date: 2004-11-15 22:45:05 +0100 (Mon, 15 Nov 2004)
New Revision: 1638
Modified:
branches/drbd-0.7/drbd/drbd_fs.c
branches/drbd-0.7/drbd/drbd_int.h
branches/drbd-0.7/drbd/drbd_receiver.c
branches/drbd-0.7/drbd/drbd_worker.c
Log:
* Replaced a call to sock_alloc() by sock_create(). Since
Linux-2.6.10-rc2 sock_alloc() is no longer available to
modules
* Introduced drbd_suicide() wich makes use of
current->exit_state = EXIT_ZOMBIE method introduced with
Linux-2.6.10-rc2
Modified: branches/drbd-0.7/drbd/drbd_fs.c
===================================================================
--- branches/drbd-0.7/drbd/drbd_fs.c 2004-11-13 18:11:55 UTC (rev 1637)
+++ branches/drbd-0.7/drbd/drbd_fs.c 2004-11-15 21:45:05 UTC (rev 1638)
@@ -481,8 +481,7 @@
*/
// return i;
drbd_panic("Cannot allocate act_log\n");
- set_current_state(TASK_ZOMBIE);
- schedule(); // drbdsetup suicide...
+ drbd_suicide();
}
if (md_gc_valid > 0) {
Modified: branches/drbd-0.7/drbd/drbd_int.h
===================================================================
--- branches/drbd-0.7/drbd/drbd_int.h 2004-11-13 18:11:55 UTC (rev 1637)
+++ branches/drbd-0.7/drbd/drbd_int.h 2004-11-15 21:45:05 UTC (rev 1638)
@@ -1544,3 +1544,13 @@
return sizeof(w) == 4 ? generic_hweight32(w) : generic_hweight64(w);
}
#endif
+
+static inline void drbd_suicide(void)
+{
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)
+ set_current_state(TASK_ZOMBIE);
+#else
+ current->exit_state = EXIT_ZOMBIE;
+#endif
+ schedule();
+}
Modified: branches/drbd-0.7/drbd/drbd_receiver.c
===================================================================
--- branches/drbd-0.7/drbd/drbd_receiver.c 2004-11-13 18:11:55 UTC (rev 1637)
+++ branches/drbd-0.7/drbd/drbd_receiver.c 2004-11-15 21:45:05 UTC (rev 1638)
@@ -488,7 +488,7 @@
if (err)
goto out;
- if (!(newsock = sock_alloc()))
+ if (sock_create(PF_INET, SOCK_STREAM, IPPROTO_TCP, &newsock))
goto out;
newsock->type = sock->type;
@@ -516,8 +516,7 @@
int rv;
if (unlikely(drbd_did_panic == DRBD_MAGIC)) {
- set_current_state(TASK_ZOMBIE);
- schedule(); // commit suicide
+ drbd_suicide();
}
msg.msg_control = NULL;
@@ -554,8 +553,7 @@
int rv;
if (unlikely(drbd_did_panic == DRBD_MAGIC)) {
- set_current_state(TASK_ZOMBIE);
- schedule(); // commit suicide
+ drbd_suicide();
}
msg.msg_control = NULL;
Modified: branches/drbd-0.7/drbd/drbd_worker.c
===================================================================
--- branches/drbd-0.7/drbd/drbd_worker.c 2004-11-13 18:11:55 UTC (rev 1637)
+++ branches/drbd-0.7/drbd/drbd_worker.c 2004-11-15 21:45:05 UTC (rev 1638)
@@ -936,8 +936,7 @@
intr = down_interruptible(&mdev->data.work.s);
if (unlikely(drbd_did_panic == DRBD_MAGIC)) {
- set_current_state(TASK_ZOMBIE);
- schedule(); // commit suicide
+ drbd_suicide();
}
if (intr) {
More information about the drbd-cvs
mailing list