Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
/ 2005-09-12 15:22:58 +0200 \ Hans Holm: > > Hello Lars, > > I moved the patch to before while(1) in asender thread function. > This is working as fine as when I patched inside drbd_recv(), which is > removed! > > So the signal DRBD_SIG is always blocked when the asender thread is > re-started > after a Full sync!???! if you say so. it should not, however. > Can I keep the patch before the while(1) then? sure. > //PATCH in drbd_receive.c line 1523 (drbd-0.6.12) hm? your line count seems to be confused. should be line 1462 I'd suggest this, then (though untested, and it has been a while since I looked into 0.6 code): Index: branches/drbd-0.6/drbd/drbd_receiver.c =================================================================== --- branches/drbd-0.6/drbd/drbd_receiver.c (revision 1934) +++ branches/drbd-0.6/drbd/drbd_receiver.c (working copy) @@ -1463,6 +1463,13 @@ ping_sent_at=0; + spin_lock_irqsave(¤t->SIGMASK_LOCK, flags); + sigfillset(¤t->blocked); + sigdelset(¤t->blocked,DRBD_SIG); + sigdelset(¤t->blocked,DRBD_SIGKILL); + RECALC_SIGPENDING(current); + spin_unlock_irqrestore(¤t->SIGMASK_LOCK, flags); + while(1) { rr=drbd_recv(mdev,((char*)&pkt)+rsize,sizeof(pkt)-rsize,1); if(rr == -ERESTARTSYS) { > Thanks for the answers and advice, Hans welcome. would be interessting to know where it was blocked, and why it stays blocked, though. this is probably masking a bug somewhere else... -- : Lars Ellenberg Tel +43-1-8178292-0 : : LINBIT Information Technologies GmbH Fax +43-1-8178292-82 : : Schoenbrunner Str. 244, A-1120 Vienna/Europe http://www.linbit.com : __ please use the "List-Reply" function of your email client.