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 :