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); }