38 lines · 961 B · C
RawDownload
/* * 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 */int squashfs_readpage_block(struct page *page, u64 block, int bsize){	struct inode *i = page->mapping->host;	struct squashfs_cache_entry *buffer = squashfs_get_datablock(i->i_sb,		block, bsize);	int res = buffer->error; 	if (res)		ERROR("Unable to read page, block %llx, size %x\n", block,			bsize);	else		squashfs_copy_cache(page, buffer, buffer->length, 0); 	squashfs_cache_put(buffer);	return res;}