[ENBD] 2.4.32 write & m_r problem

Peter T. Breuer ptb at it.uc3m.es
Tue Mar 2 15:43:03 MST 2004


"Also sprach Arne Wiebalck:"
> On Tue, 2 Mar 2004, Peter T. Breuer wrote:
> 
> > Conflicting indications. If it were the driver acking in memory instead
> > of over the net, then the raw device would have showed the errors, but
> > at once, instead of after 500M.
> >
> > How big are the diffs with that 2-week old version?
> 
> I used the 4-week old driver together with the current daemons and saw
> errors, so it must be enbd-server, enbd-client, file.c and friends.

The only significant difference I can see is in enbd-server.c:

@@ -1341,8 +1391,9 @@
                 request->seqno, err, self->pid);
         if (err < 0) {
             // PTB somebody else handled it and we just boobed
-            ERROR (reply);
-            return -EINVAL;
+            reply->error = 0; // PTB we lie and say we handled it OK
+            //ERROR (reply);
+            return 0;
         }
     }
 
which I think tells the server to lie and say that we succeeded in
writing to disk if we believe the request to already have been handled
(successfully?) by some other daemon, and to have been resent to us in
error. I believe "-h 0" turns this whole suite of things off.

> I sent the diff in my last mail. It's still more than 3000 lines, but
> I think the search can be restricted to the files mentioned, no?

Well, yes. diff -ub (i.e. ignore white space changes) would narrow it a
bit more. I would have said it was fairly likely to be enbd-server.c or
file.c.

If -h 0 does not make things stop erroring, try inverting the hunk
above.

Peter



More information about the ENBD mailing list