/* * Copyright (c) 2013 * Phillip Lougher <phillip@squashfs.org.uk> * * This work is licensed under the terms of the GNU GPL, version 2. See * the COPYING file in the top-level directory. */#include <linux/fs.h>#include <linux/vfs.h>#include <linux/kernel.h>#include <linux/slab.h>#include <linux/string.h>#include <linux/pagemap.h>#include <linux/mutex.h>#include "squashfs_fs.h"#include "squashfs_fs_sb.h"#include "squashfs_fs_i.h"#include "squashfs.h"/* Read separately compressed datablock and memcopy into page cache */intsquashfs_readpage_block(structpage*page,u64block,intbsize){structinode*i=page->mapping->host;structsquashfs_cache_entry*buffer=squashfs_get_datablock(i->i_sb,block,bsize);intres=buffer->error;if(res)ERROR("Unable to read page, block %llx, size %x\n",block,bsize);elsesquashfs_copy_cache(page,buffer,buffer->length,0);squashfs_cache_put(buffer);returnres;}