mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
887 B
36 lines
887 B
// SPDX-License-Identifier: GPL-2.0-only |
|
/* |
|
* Copyright (c) 2013 |
|
* Phillip Lougher <[email protected]> |
|
*/ |
|
|
|
#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, int expected) |
|
{ |
|
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, expected, 0); |
|
|
|
squashfs_cache_put(buffer); |
|
return res; |
|
}
|
|
|