Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
On Thursday 06 May 2004 15:29, Eugene Crosser wrote:
> Debug: sleeping function called from invalid context at mm/slab.c:1967
I am running out of brown paper bags...
RCS file: /var/lib/cvs/drbd/drbd/drbd/drbd_receiver.c,v
retrieving revision 1.97.2.147
diff -u -p -u -r1.97.2.147 drbd_receiver.c
--- drbd_receiver.c 6 May 2004 13:59:14 -0000 1.97.2.147
+++ drbd_receiver.c 6 May 2004 15:55:43 -0000
@@ -268,11 +268,14 @@ struct Tl_epoch_entry* drbd_get_ee(drbd_
prepare_to_wait(&mdev->ee_wait, &wait,
TASK_INTERRUPTIBLE);
if(!list_empty(&mdev->free_ee)) break;
+ spin_unlock_irq(&mdev->ee_lock);
if( ( mdev->ee_vacant+mdev->ee_in_use) <
mdev->conf.max_buffers ) {
- if(drbd_alloc_ee(mdev,GFP_TRY)) break;
+ if(drbd_alloc_ee(mdev,GFP_TRY)) {
+ spin_lock_irq(&mdev->ee_lock);
+ break;
+ }
}
- spin_unlock_irq(&mdev->ee_lock);
drbd_kick_lo(mdev);
schedule();
spin_lock_irq(&mdev->ee_lock);
-philipp
--
: Dipl-Ing Philipp Reisner Tel +43-1-8178292-50 :
: LINBIT Information Technologies GmbH Fax +43-1-8178292-82 :
: Schönbrunnerstr 244, 1120 Vienna, Austria http://www.linbit.com :