From: Tony S. <tsh...@os...> - 2007-04-13 20:09:21
|
This just keeps getting better and better. I might note here that I'm no c programmer, so be nice to me. :) I've added this into mysqlfs.c: static int mysqlfs_statfs(const char *path, struct statvfs *buf) { (void) path; buf->f_namemax = 255; buf->f_bsize = 4096; /* df seems to use f_bsize instead of f_frsize, so make them the same */ buf->f_frsize = buf->f_bsize; buf->f_blocks = buf->f_bfree = buf->f_bavail = 1000ULL * 1024 * 1024 * 1024 / buf->f_frsize; buf->f_files = buf->f_ffree = 1000000000; return 0; } and also added a declaration for it to the fuse_operations struct. I might also mention that the hard drive in this system isn't all that large, about 20GB if I recall, and I'm connecting to a local MySQL database. This ought to strike you as funny then: /dev/fuse3 1.0T 0B 1.0T 0% /mysqlfs Obviously I have f_namemax and f_bsize completely wrong. :P That, and I still can't write. Same errors. Grrr...I'm missing something here, I just don't know what. Tony Shadwick wrote: > Ugh, I did it again. Here's the URL spelling out how to fix this: > > http://fuse4bsd.creo.hu/doc/html_single_out/doc.html#hd001005 > > Tony Shadwick wrote: >> Well, I replied to myself from the wrong address earlier, so it didn't >> get posted. ooops. >> >> Okay, the compile error was fixed by first running ./configure, then >> modifying Makefile to remove -Wall from CFLAGS (there are two instances >> of it). >> >> So it compiles, and I can mount the filesytem: >> >> manager# df -h >> Filesystem Size Used Avail Capacity Mounted on >> /dev/ad0s1a 496M 76M 380M 17% / >> devfs 1.0K 1.0K 0B 100% /dev >> /dev/ad0s1e 496M 20K 456M 0% /tmp >> /dev/ad0s1f 28G 1.9G 24G 7% /usr >> /dev/ad0s1d 2.9G 39M 2.6G 1% /var >> devfs 1.0K 1.0K 0B 100% /var/named/dev >> /dev/fuse1 0B 0B 0B 100% /mysqlfs >> >> Um...capacity 100%? >> >> It gets better: >> >> manager# cd /mysqlfs/ >> manager# ls -alhs >> total 2 >> 0 drwxr-xr-x 1 root wheel 0B Apr 13 14:01 . >> 2 drwxr-xr-x 22 root wheel 512B Apr 13 14:00 .. >> manager# touch test >> touch: test: No such file or directory >> manager# mkdir test >> mkdir: .: No such file or directory >> manager# pwd >> /mysqlfs >> >> I did a little research on this, and came across this page: >> >> http://datafarm.apgrid.org/ml/gfarm-discuss/msg00162.html >> >> It makes mention of sys/statfs.h, configure.in not being right, and most >> importantly: >> >> "statvfs->f_frsize is not set, therefore df command cannot work >> correctly on FreeBSD." >> >> It seems to be a bit more than that though, as I can't execute any file >> operations at all, and nothing appears to be getting logged... >> >> Tony Shadwick wrote: >>> Well, figured this out partially. time.h on freebsd doesn't define the >>> struct utimbuf. utime.h does, however including it with or without >>> time.h makes no difference, I get the same error. :\ >>> >>> Tony Shadwick >>> OSS Solutions >>> >>> Tony Shadwick wrote: >>>> Yes, there is Fuse for FreeBSD. I've built it from ports, and it's >>>> using API 2.6. >>>> >>>> Anyhooo....../configure is okay (after editing fuse.h to report the >>>> correct API, apparently it has a backwards compat mode to version 2.1 >>>> and defaults to that. Changing to 2.6 per the instructions works >>>> fine!), then when I attempt to do make or gmake, I get this error: >>>> >>>> manager# gmake >>>> gmake all-am >>>> gmake[1]: Entering directory `/usr/local/src/mysqlfs-0.4.0-rc1' >>>> if gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/include -I/usr/local/include >>>> -L/usr/lib -L/usr/local/lib -I/usr/include -I/usr/local/include >>>> -L/usr/lib -L/usr/local/lib -I/usr/local/include -Wall -Werror >>>> -I/usr/local/include/mysql -Wall -Werror -MT query.o -MD -MP -MF >>>> ".deps/query.Tpo" -c -o query.o query.c; \ >>>> then mv -f ".deps/query.Tpo" ".deps/query.Po"; else rm -f >>>> ".deps/query.Tpo"; exit 1; fi >>>> query.c: In function `query_utime': >>>> query.c:439: warning: long int format, time_t arg (arg 4) >>>> query.c:439: warning: long int format, time_t arg (arg 5) >>>> query.c:439: warning: long int format, time_t arg (arg 4) >>>> query.c:439: warning: long int format, time_t arg (arg 5) >>>> gmake[1]: *** [query.o] Error 1 >>>> gmake[1]: Leaving directory `/usr/local/src/mysqlfs-0.4.0-rc1' >>>> gmake: *** [all] Error 2 >>>> >>>> The code section it's complaining about is below. The last line is line >>>> 439. >>>> >>>> --------- >>>> >>>> int query_utime(MYSQL *mysql, long inode, struct utimbuf *time) >>>> { >>>> int ret; >>>> char sql[SQL_MAX]; >>>> >>>> snprintf(sql, SQL_MAX, >>>> "UPDATE inodes " >>>> "SET atime=%ld, mtime=%ld " >>>> "WHERE inode=%lu", >>>> time->actime, time->modtime, inode); >>>> >>>> -------- >>>> >>>> It appears to not like time->actime and time->modtime. Any idea what >>>> might cause this or how to debug it/fix it up? >>>> >>>> Thanks! >>>> >>>> Tony Shadwick >>>> OSS Solutions >>>> >>>> ------------------------------------------------------------------------- >>>> Take Surveys. Earn Cash. Influence the Future of IT >>>> Join SourceForge.net's Techsay panel and you'll get the chance to share your >>>> opinions on IT & business topics through brief surveys-and earn cash >>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >>>> _______________________________________________ >>>> Mysqlfs-general mailing list >>>> Mys...@li... >>>> https://lists.sourceforge.net/lists/listinfo/mysqlfs-general >>> ------------------------------------------------------------------------- >>> Take Surveys. Earn Cash. Influence the Future of IT >>> Join SourceForge.net's Techsay panel and you'll get the chance to share your >>> opinions on IT & business topics through brief surveys-and earn cash >>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >>> _______________________________________________ >>> Mysqlfs-general mailing list >>> Mys...@li... >>> https://lists.sourceforge.net/lists/listinfo/mysqlfs-general >> ------------------------------------------------------------------------- >> Take Surveys. Earn Cash. Influence the Future of IT >> Join SourceForge.net's Techsay panel and you'll get the chance to share your >> opinions on IT & business topics through brief surveys-and earn cash >> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >> _______________________________________________ >> Mysqlfs-general mailing list >> Mys...@li... >> https://lists.sourceforge.net/lists/listinfo/mysqlfs-general > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Mysqlfs-general mailing list > Mys...@li... > https://lists.sourceforge.net/lists/listinfo/mysqlfs-general |