size_t end_index = ((bl_index + 1) << FUSE_BLOCK_PAGE_SHIFT) - 1;
size_t file_end_index = inode->i_size >> PAGE_CACHE_SHIFT;
- int i, error = 0;
+ int i;
if (end_index > file_end_index)
end_index = file_end_index;
page = find_or_create_page(mapping, index, GFP_NOFS);
+ if (!page)
+ return -1;
+
if (!Page_Uptodate(page)) {
buffer = kmap(page);
memcpy(buffer, bl_buf + i * PAGE_CACHE_SIZE,
page_cache_release(page);
}
- return error;
+ return 0;
}
static int fuse_file_read_block(struct inode *inode, char *bl_buf,