aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2005-05-06 10:10:38 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2005-05-06 10:10:38 +0000
commitd0cf1fb60902db0c9a972ec989cd46283ccf5a3a (patch)
tree23a89adf4dd9228c4dc0c72be94fabfd2c5e66a8
parentbaab6cbfa9ed40c852e3dc60d783439c48646ee0 (diff)
downloadlibfuse-d0cf1fb60902db0c9a972ec989cd46283ccf5a3a.tar.gz
bugfix
-rw-r--r--ChangeLog5
-rw-r--r--lib/fuse.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index e6c68f5..0e9e54d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-05-06 Miklos Szeredi <miklos@szeredi.hu>
+
+ * Fix abort for out of order FORGET messages. Again. Spotted by
+ Franco Broi again. Sorry :)
+
2005-04-29 Miklos Szeredi <miklos@szeredi.hu>
* Released 2.3-pre6
diff --git a/lib/fuse.c b/lib/fuse.c
index 9659a0d..9bc933f 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -391,8 +391,8 @@ static void forget_node(struct fuse *f, nodeid_t nodeid, uint64_t version)
struct node *node;
pthread_mutex_lock(&f->lock);
- node = get_node(f, nodeid);
- if (node->version == version && nodeid != FUSE_ROOT_ID) {
+ node = get_node_nocheck(f, nodeid);
+ if (node && node->version == version && nodeid != FUSE_ROOT_ID) {
node->version = 0;
unhash_name(f, node);
unref_node(f, node);