diff options
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | kernel/file.c | 2 | ||||
-rw-r--r-- | lib/fuse_session.c | 5 |
3 files changed, 15 insertions, 6 deletions
@@ -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 diff --git a/kernel/file.c b/kernel/file.c index e3a42c0..f01fc99 100644 --- a/kernel/file.c +++ b/kernel/file.c @@ -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 diff --git a/lib/fuse_session.c b/lib/fuse_session.c index 73f5f57..6e68568 100644 --- a/lib/fuse_session.c +++ b/lib/fuse_session.c @@ -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; } |