Hi!

> > It complains
> > 
> > coda_read_super: Bad mount data
> > coda_read_super: device index: 0
> > 
> > and will not mount. What do I need to mount coda?
> >                                                             Pavel
> 
> Miklos Szeredi sent a patch to support multiple mountpoints/coda
> devices. However, the code falls back on the default device (cfs0)
> when the mountdata is incorrect. So the problem must be unrelated
> to the "Bad mount data" error message.
> 
> The code to mount with the correct mountdata looks like this:
> 
>       #include <linux/coda.h>
> 
>       muxfd = open("/dev/cfs0", O_RDWR);
> 
>       struct coda_mount_data mountdata;
>       mountdata.version = CODA_MOUNT_VERSION;
>       mountdata.fd = muxfd
> 
>       error = mount("coda", "/coda", "coda",  MS_MGC_VAL,
>                   (void *)&mountdata);

This does not work:

open("/dev/cfs0", O_RDWR)               = -1 ENODEV (No such device)
mount("coda", "/mnt", "coda", 0xc0ed0000, 0xbffffc04coda_read_super:
Bad file
coda_read_super: device index: 0
coda_read_super: No pseudo device
) = -1 EINVAL (Invalid argument)
_exit(-1)                               = ?

:-(. [I attached full source to my mount utility.]
                                                                Pavel
-- 
I'm [EMAIL PROTECTED] "In my country we have almost anarchy and I don't care."
Panos Katsaloulis describing me w.r.t. patents at [EMAIL PROTECTED]

#include <dirent.h>
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <signal.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#ifdef SOLARIS
#include <sys/types32.h>
#include <sys/fcntl.h>
#include <sys/mount.h>
#include <sys/mntent.h>
#include <sys/mnttab.h>
#endif
#include <sys/stat.h>
#include <sys/time.h>
#include "/usr/src/linux/include/linux/coda.h"
#define MS_MGC_VAL 0xC0ED0000 /* magic flag number to indicate "new" flags */


void main(void)
{
	int muxfd = open("/dev/cfs0", O_RDWR);
	int error;

	struct coda_mount_data mountdata;
	mountdata.version = CODA_MOUNT_VERSION;
	mountdata.fd = muxfd;

	error = mount("coda", "/mnt", "coda",  MS_MGC_VAL,
		      (void *)&mountdata);
}

Reply via email to