aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--kernel/dev.c5
2 files changed, 7 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index a05370f..4fb2bab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-03-04 Miklos Szeredi <miklos@szeredi.hu>
+
+ * kernel: fix nasty bug which could cause an Oops under certain
+ situations. Found by Magnus Johansson
+
2005-02-28 Miklos Szeredi <miklos@szeredi.hu>
* libfuse: added opendir() method. This can be used in case
diff --git a/kernel/dev.c b/kernel/dev.c
index f6e8b1f..f3de9de 100644
--- a/kernel/dev.c
+++ b/kernel/dev.c
@@ -159,12 +159,11 @@ struct fuse_req *fuse_get_request_nonint(struct fuse_conn *fc)
static void fuse_putback_request(struct fuse_conn *fc, struct fuse_req *req)
{
- if (!req->preallocated)
- fuse_request_free(req);
-
spin_lock(&fuse_lock);
if (req->preallocated)
list_add(&req->list, &fc->unused_list);
+ else
+ fuse_request_free(req);
if (fc->outstanding_debt)
fc->outstanding_debt--;