[ENBD] enbd-2.4.32 problems

Peter T. Breuer ptb at it.uc3m.es
Mon Jan 12 06:02:06 MST 2004


"Also sprach Peter T. Breuer:"
> "Also sprach Arne Wiebalck:"
> > On Mon, 12 Jan 2004, Arne Wiebalck wrote:
> > > I'll see if I can find out what line it is exactly ...
> > 
> > it's any of the remote_ioctls around line 5493:
> > 
> >       remote_ioctl->convert_inplace(&cmd);
> >       err = enbd_remote_ioctl(lo, cmd, arg);
> 
> Have you loaded the enbd_ioctl.o module? It is now needed.

OK - that makes sense.  As you can see from the code, I changed the
"media_changed" probe to send an ioctl over enbd's remote ioctl
interface to the serverside kernel, and thereby get *it* to check the
media for us.

That won't work if the enbd_ioctl module is not loaded. Unfortunately,
my two lines up above really ought to not rely on the enbd_ioctl.o
module being loaded in order to not crash!  I think they ought to say
something like

  
  if (!remote_ioctl) {
      atomic_set_mask (ENBD_VALIDATED, &lo->flags);
      return 1; // PTB tell kernel all is well, although we have no idea
  }
  remote_ioctl->convert_inplace(&cmd);
  err = enbd_remote_ioctl(lo, cmd, arg);


Although perhaps somebody brave could try the effect of replying by
default the other way round.  Maybe the kernel will just flush buffers
and recheck some time later.

  if (!remote_ioctl) {
      atomic_clear_mask (ENBD_VALIDATED, &lo->flags);
      return 0; // PTB tell kernel bad news, although we have no idea
  }
  remote_ioctl->convert_inplace(&cmd);
  err = enbd_remote_ioctl(lo, cmd, arg);



Peter


More information about the ENBD mailing list