fixes
authorMiklos Szeredi <miklos@szeredi.hu>
Wed, 27 Sep 2006 18:48:06 +0000 (18:48 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Wed, 27 Sep 2006 18:48:06 +0000 (18:48 +0000)
ChangeLog
kernel/file.c
lib/fuse_session.c

index 7a53ceae1dee9c5c3d54c04239333f35e7320092..e98579215014270172807e6f61c9f204429d27b0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,13 +1,23 @@
+2006-09-27  Miklos Szeredi <miklos@szeredi.hu>
+
+       * Fix Oops in fuse_readpages().  Reported by David Shaw
+
 2006-09-24  Csaba Henk <csaba.henk@creo.hu>
 
        * Add support for nanosec times on FreeBSD
 
        * Fix FreeBSD compatibility issues
 
+2006-09-23  Miklos Szeredi <miklos@szeredi.hu>
+
+       * Fix one more compatibility bug.  Thanks to Ricardo Correia
+
+       * Fix utimens compilation with uClibc.  Patch from Jamie Guinan
+
 2006-09-22  Miklos Szeredi <miklos@szeredi.hu>
 
-       * Fix compatibility bugs in low level interface.  Reported by
-       Ricardo Correia
+       * Fixed several compatibility bugs in low level interface.
+       Reported by Ricardo Correia
 
        * Add workaround for ARM caching bug
 
index e3a42c02f5f6ec93fce98c615332ff967daace42..f01fc995923154eca74fc96d0c605abc75f49169 100644 (file)
@@ -434,7 +434,7 @@ static int fuse_readpages(struct file *file, struct address_space *mapping,
        data.req = NULL;
 
        err = read_cache_pages(mapping, pages, fuse_readpages_fill, &data);
-       if (!err) {
+       if (!err && data.req) {
                if (data.req->num_pages)
                        fuse_send_readpages(data.req, file, inode);
                else
index 73f5f5702f0de8b517e44bbf5cdb5f7591a76a5d..6e685687f1932b756705909ab53221f12efa0a34 100644 (file)
@@ -120,8 +120,8 @@ int fuse_session_exited(struct fuse_session *se)
         return se->exited;
 }
 
-struct fuse_chan *fuse_chan_new_common(struct fuse_chan_ops *op, int fd,
-                                       size_t bufsize, void *data, int compat)
+static struct fuse_chan *fuse_chan_new_common(struct fuse_chan_ops *op, int fd,
+                                size_t bufsize, void *data, int compat)
 {
     struct fuse_chan *ch = (struct fuse_chan *) malloc(sizeof(*ch));
     if (ch == NULL) {
@@ -186,7 +186,6 @@ int fuse_chan_receive(struct fuse_chan *ch, char *buf, size_t size)
 {
     int res;
 
-    assert(ch->compat);
     res = fuse_chan_recv(&ch, buf, size);
     return res >= 0 ? res : (res != -EINTR && res != -EAGAIN) ? -1 : 0;
 }