--- zzzz-none-000/linux-2.6.19.2/fs/fuse/file.c 2007-01-10 19:10:37.000000000 +0000 +++ davinci-8020-5504/linux-2.6.19.2/fs/fuse/file.c 2007-01-11 07:38:19.000000000 +0000 @@ -397,14 +397,14 @@ err = -EIO; if (is_bad_inode(inode)) - goto out; + goto clean_pages_up; data.file = file; data.inode = inode; data.req = fuse_get_req(fc); err = PTR_ERR(data.req); if (IS_ERR(data.req)) - goto out; + goto clean_pages_up; err = read_cache_pages(mapping, pages, fuse_readpages_fill, &data); if (!err) { @@ -413,7 +413,10 @@ else fuse_put_request(fc, data.req); } -out: + return err; + +clean_pages_up: + put_pages_list(pages); return err; }