aboutsummaryrefslogtreecommitdiffstats
path: root/perl/Fuse.xs
diff options
context:
space:
mode:
authorMark Glines <mark@glines.org>2002-03-17 06:58:33 +0000
committerMark Glines <mark@glines.org>2002-03-17 06:58:33 +0000
commit85801bbad1b3f1160bd35608f30048faa8d94995 (patch)
tree3cf670052dc61d8ec2da79c21047bc41c1db6b23 /perl/Fuse.xs
parent3e3d081d28ff60331d791ae9bc4e1f8d98701d86 (diff)
downloadlibfuse-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.xs16
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