fix
authorMiklos Szeredi <miklos@szeredi.hu>
Fri, 4 Mar 2005 17:28:51 +0000 (17:28 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Fri, 4 Mar 2005 17:28:51 +0000 (17:28 +0000)
ChangeLog
kernel/dev.c

index a05370fa5c7c3fa8bff32a1e6f4afd88927ea964..4fb2babf1f80ba9e4bcaa4fdd318a502da39344b 100644 (file)
--- 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
index f6e8b1f2c307ab37419157a18a656900f0ebecf6..f3de9de71746cb2e25f0f00f1245d8686e753f6e 100644 (file)
@@ -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--;