diff options
author | Mark Glines <mark@glines.org> | 2002-03-17 06:58:33 +0000 |
---|---|---|
committer | Mark Glines <mark@glines.org> | 2002-03-17 06:58:33 +0000 |
commit | 85801bbad1b3f1160bd35608f30048faa8d94995 (patch) | |
tree | 3cf670052dc61d8ec2da79c21047bc41c1db6b23 /perl/Fuse.xs | |
parent | 3e3d081d28ff60331d791ae9bc4e1f8d98701d86 (diff) | |
download | libfuse-85801bbad1b3f1160bd35608f30048faa8d94995.tar.gz |
'struct statfs' changes size, and entries within it change position, depending
on which headerfiles are included and which macros are defined. Because its
unreliable, we now use struct fuse_statfs everywhere except in the kernel.
Also fixed some perl fuse_main semantics - it now works much better when
multithreading is disabled.
Diffstat (limited to 'perl/Fuse.xs')
-rw-r--r-- | perl/Fuse.xs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/perl/Fuse.xs b/perl/Fuse.xs index f197449..6e8a5c6 100644 --- a/perl/Fuse.xs +++ b/perl/Fuse.xs @@ -32,6 +32,7 @@ int _PLfuse_getattr(const char *file, struct stat *result) { else rv = -ENOENT; } else { + DEBUGf("populating\n"); result->st_blocks = POPi; result->st_blksize = POPi; result->st_ctime = POPi; @@ -50,6 +51,7 @@ int _PLfuse_getattr(const char *file, struct stat *result) { FREETMPS; LEAVE; PUTBACK; + DEBUGf("getattr end %i %o\n",rv,result->st_mode); return rv; } @@ -473,7 +475,7 @@ int _PLfuse_write (const char *file, const char *buf, size_t buflen, off_t off) return rv; } -int _PLfuse_statfs (struct statfs *st) { +int _PLfuse_statfs (struct fuse_statfs *st) { int rv; char *rvstr; dSP; @@ -485,12 +487,12 @@ int _PLfuse_statfs (struct statfs *st) { rv = call_sv(_PLfuse_callbacks[17],G_ARRAY); SPAGAIN; if(rv > 5) { - st->f_bsize = POPi; - st->f_bavail = st->f_bfree = POPi; - st->f_blocks = POPi; - st->f_ffree = POPi; - st->f_files = POPi; - st->f_namelen = POPi; + st->block_size = POPi; + st->blocks_free = POPi; + st->blocks = POPi; + st->files_free = POPi; + st->files = POPi; + st->namelen = POPi; if(rv > 6) rv = POPi; else |