[ENBD] 2.4.32

Peter T. Breuer ptb at it.uc3m.es
Fri Mar 5 12:27:56 MST 2004


"Also sprach Anders Blomdell:"
> > And it would remain sensitive to network outages, as all daemons would
> > die off in that case. Yerrrrrrs  .... hang on ....
> One more problem noticed:
> 
> I restarted all servers (init 6) and they all got stuck just after
> "stopping all md devices" on a "updating mdX superblock", which is a little 
> late (unless there is a timeout somwhere, I didn't have time to wait).

Hang on. One thing at a time.


I notice that the clients can report a remote (disk) error themselves
if the server positively tells them life is hell.  That might also be
nasty ... I'm pretty sure the kernel driver can already tell that the
request has been remote errored the same way that the clients can, so 
I think it would be better to leave it to the kernel ... anyway, try
this in the driver.

In enbd_rollback in enbd.c:


        struct request *xreq = NULL;
        int cmd;

-       if ((atomic_read (&lo->flags) & ENBD_SHOW_ERRS) || req->errors < 0) {
+       if (((atomic_read (&lo->flags) & ENBD_SHOW_ERRS) && atomic_read(&lo->aslot) <= 0)
+       || req->errors < 0) {
                // PTB error instead of rollback (errors < 0 is remote error)
                enbd_error (slot, req);


Which makes it harder to error requests.

There is another place I am also looking at, but try that one.

Peter


More information about the ENBD mailing list