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.