Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux...
[linux-2.6-block.git] / fs / squashfs / squashfs_fs_sb.h
CommitLineData
68252eb5 1/* SPDX-License-Identifier: GPL-2.0-or-later */
ffae2cd7
PL
2#ifndef SQUASHFS_FS_SB
3#define SQUASHFS_FS_SB
4/*
5 * Squashfs
6 *
7 * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
d7f2ff67 8 * Phillip Lougher <phillip@squashfs.org.uk>
ffae2cd7 9 *
ffae2cd7
PL
10 * squashfs_fs_sb.h
11 */
12
13#include "squashfs_fs.h"
14
15struct squashfs_cache {
16 char *name;
17 int entries;
d7fbd893 18 int curr_blk;
ffae2cd7
PL
19 int next_blk;
20 int num_waiters;
21 int unused;
22 int block_size;
23 int pages;
24 spinlock_t lock;
25 wait_queue_head_t wait_queue;
26 struct squashfs_cache_entry *entry;
27};
28
29struct squashfs_cache_entry {
30 u64 block;
31 int length;
32 int refcount;
33 u64 next_index;
34 int pending;
35 int error;
36 int num_waiters;
37 wait_queue_head_t wait_queue;
38 struct squashfs_cache *cache;
39 void **data;
846b730e 40 struct squashfs_page_actor *actor;
ffae2cd7
PL
41};
42
43struct squashfs_sb_info {
4c0f0bb2
PL
44 const struct squashfs_decompressor *decompressor;
45 int devblksize;
46 int devblksize_log2;
47 struct squashfs_cache *block_cache;
48 struct squashfs_cache *fragment_cache;
49 struct squashfs_cache *read_page;
50 int next_meta_index;
51 __le64 *id_table;
52 __le64 *fragment_index;
4b5397dc 53 __le64 *xattr_id_table;
4c0f0bb2
PL
54 struct mutex meta_index_mutex;
55 struct meta_index *meta_index;
9508c6b9 56 struct squashfs_stream *stream;
4c0f0bb2
PL
57 __le64 *inode_lookup_table;
58 u64 inode_table;
59 u64 directory_table;
4b5397dc 60 u64 xattr_table;
4c0f0bb2
PL
61 unsigned int block_size;
62 unsigned short block_log;
63 long long bytes_used;
64 unsigned int inodes;
71755ee5 65 unsigned int fragments;
4b5397dc 66 int xattr_ids;
ffae2cd7
PL
67};
68#endif