Merge tag 'v5.14-rc6' into locking/core, to pick up fixes
[platform/kernel/linux-rpi.git] / fs / squashfs / squashfs_fs_sb.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 #ifndef SQUASHFS_FS_SB
3 #define SQUASHFS_FS_SB
4 /*
5  * Squashfs
6  *
7  * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
8  * Phillip Lougher <phillip@squashfs.org.uk>
9  *
10  * squashfs_fs_sb.h
11  */
12
13 #include "squashfs_fs.h"
14
15 struct squashfs_cache {
16         char                    *name;
17         int                     entries;
18         int                     curr_blk;
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
29 struct 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;
40         struct squashfs_page_actor      *actor;
41 };
42
43 struct squashfs_sb_info {
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;
53         __le64                                  *xattr_id_table;
54         struct mutex                            meta_index_mutex;
55         struct meta_index                       *meta_index;
56         struct squashfs_stream                  *stream;
57         __le64                                  *inode_lookup_table;
58         u64                                     inode_table;
59         u64                                     directory_table;
60         u64                                     xattr_table;
61         unsigned int                            block_size;
62         unsigned short                          block_log;
63         long long                               bytes_used;
64         unsigned int                            inodes;
65         unsigned int                            fragments;
66         int                                     xattr_ids;
67         unsigned int                            ids;
68         bool                                    panic_on_errors;
69 };
70 #endif