vinum "Invalid argument"

Jake Maciejewski maciejej at msoe.edu
Wed Aug 17 15:43:38 PDT 2005


On Tue, 2005-08-16 at 00:10 -0500, Jake Maciejewski wrote:
> It's vinum_create() in commands.c throwing up those errors. It looks
> like it's actually failing to parse my config file. I tried to track
> down the problem, and either I'm missing something in the code, or it
> fails as follows:
> 
> char buffer[BUFSIZE];				    /* read config file in here */
> 
> next mention of "buffer" it's being cast to a struct _ioctl_reply
> pointer
> 
> reply = (struct _ioctl_reply *) &buffer;
> 
> next mention of "reply" is error checking from the struct
> 
> if (reply->error != 0) {			    /* error in config */
>  if (!vflag)					    /* print this line anyway */
>   printf("%4d: %s", file_line, commandline);
>  fprintf(stdout, "** %d %s: %s\n",
>   file_line,
>   reply->msg,
>   strerror(reply->error));
> 
> The fprintf line is my suspicious error. Assuming the code only worked
> because of compiler behaviors, I compiled vinum with gcc2. The gcc2
> version loaded the second drive from my config, but not the first.

I got the same result with FreeBSD 4.11, one drive working but not the
other. After redoing the disklabel, I got the other drive to load as
well.

Clearly vinum is broken when compiled with gcc3. FreeBSD avoided this
problem because when they switched to gcc3, they also had to rework
vinum to interface through geom.

> Someone please comment. This machine is used for backups, so right now I
> have ~130Gb of data that exists only on a single ATA drive using the
> experimental reiser4 Linux filesystem.

-- 
Jake Maciejewski <maciejej at xxxxxxxx>






More information about the Bugs mailing list