From 07cf0feb2efeea4d90bcf700438a4bb4f97607dd Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Wed, 27 Sep 2006 18:48:06 +0000 Subject: [PATCH] fixes --- ChangeLog | 14 ++++++++++++-- kernel/file.c | 2 +- lib/fuse_session.c | 5 ++--- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7a53cea..e985792 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,13 +1,23 @@ +2006-09-27 Miklos Szeredi + + * Fix Oops in fuse_readpages(). Reported by David Shaw + 2006-09-24 Csaba Henk * Add support for nanosec times on FreeBSD * Fix FreeBSD compatibility issues +2006-09-23 Miklos Szeredi + + * Fix one more compatibility bug. Thanks to Ricardo Correia + + * Fix utimens compilation with uClibc. Patch from Jamie Guinan + 2006-09-22 Miklos Szeredi - * 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; } -- 2.30.2