fixes
authorMiklos Szeredi <miklos@szeredi.hu>
Wed, 9 Jan 2002 12:23:27 +0000 (12:23 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Wed, 9 Jan 2002 12:23:27 +0000 (12:23 +0000)
ChangeLog
kernel/dir.c
lib/fuse.c
python/Makefile
python/_fusemodule.c

index f00aae050ed011b909bd07d8374de0eff9587feb..032bdd3585b04ccb88eb24e544158039dca5db0b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2002-01-09  Miklos Szeredi <mszeredi@inf.bme.hu>
+
+       * Revaidate all path components not just the last, this means a
+       very small performance penalty for being more up-to-date.
+
+2002-01-08  Miklos Szeredi <mszeredi@inf.bme.hu>
+
+       * Update and fix python interface
+
 2002-01-07  Mark Glines <mark@glines.org>
        
        * Added statfs() support to kernel, lib, examples, and perl!
index 7068d37ad42fefa7510d31f145ec4b54aa1b2fed..2ebd2a156456d3f66a2332cf008ab17e1db3af38 100644 (file)
@@ -601,8 +601,7 @@ static int fuse_dentry_revalidate(struct dentry *entry, int flags)
                return 0;
        /* Must not revaidate too soon, since kernel revalidate logic is
            broken, and could return ENOENT */
-       else if(!(flags & LOOKUP_CONTINUE) &&
-               time_after(jiffies, entry->d_time + FUSE_REVALIDATE_TIME))
+       else if(time_after(jiffies, entry->d_time + FUSE_REVALIDATE_TIME))
                return 0;
        else
                return 1;
index 88f3eae7d6d159f1cc014505d5f9ffa9a157aaf3..63dadf55e0f47c97fb60efa18b59f66540e4c639 100644 (file)
@@ -548,7 +548,7 @@ static void do_readlink(struct fuse *f, struct fuse_in_header *in)
         free(path);
     }
     link[PATH_MAX] = '\0';
-    send_reply(f, in, res, link, !res ? strlen(link) : 0);
+    send_reply(f, in, res, link, res == 0 ? strlen(link) : 0);
 }
 
 static void do_getdir(struct fuse *f, struct fuse_in_header *in)
@@ -812,8 +812,9 @@ static void do_statfs(struct fuse *f, struct fuse_in_header *in)
     res = -ENOSYS;
     if(f->op.statfs)
         res = f->op.statfs(&sbuf);
-    if(!res)
+    if(res == 0)
         convert_statfs(&sbuf,&arg.st);
+
     send_reply(f, in, res, &arg, sizeof(arg));
 }
 
index 8b7ea807f371bea701084591456cb679de68fb68..12393e7f1284d0620eb9089a692a7487046c09cf 100644 (file)
@@ -1,5 +1,5 @@
 _fusemodule.so: _fusemodule.c
-       gcc -g3 -I/usr/include/python1.5 _fusemodule.c -Wl,-shared -o _fusemodule.so -Wimplicit -lfuse && python -c 'import _fuse'
+       gcc -g3 -I/usr/include/python2.1 _fusemodule.c -Wl,-shared -o _fusemodule.so -Wimplicit -lfuse && python -c 'import _fuse'
 
 clean:
        rm -f _fusemodule.so *.pyc *.pyo
index d4dd0ff627bfd77066faa94aea992efb505a0dfc..6956be2f8e233f7a67e4e5b015efbfb42c35fcc3 100644 (file)
@@ -279,7 +279,9 @@ Fuse_main(PyObject *self, PyObject *args, PyObject *kw)
                "mkdir", "unlink", "rmdir", "symlink", "rename",
                "link", "chmod", "chown", "truncate", "utime",
                "open", "read", "write", "flags", "multithreaded", NULL};
-                               
+       
+       memset(&op, 0, sizeof(op));
+
        if (!PyArg_ParseTupleAndKeywords(args, kw, "|OOOOOOOOOOOOOOOOOii", 
                kwlist, &getattr_cb, &readlink_cb, &getdir_cb, &mknod_cb,
                &mkdir_cb, &unlink_cb, &rmdir_cb, &symlink_cb, &rename_cb,
@@ -307,8 +309,7 @@ Fuse_main(PyObject *self, PyObject *args, PyObject *kw)
        DO_ONE_ATTR(read);
        DO_ONE_ATTR(write);
 
-       fuse = fuse_new(0, flags);
-       fuse_set_operations(fuse, &op); 
+       fuse = fuse_new(0, flags, &op);
        if(multithreaded)
                pyfuse_loop_mt(fuse);
        else