diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | kernel/dev.c | 5 |
2 files changed, 7 insertions, 3 deletions
@@ -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--; |