This source file includes following definitions.
- z_erofs_page_is_staging
- z_erofs_put_stagingpage
1
2
3
4
5
6
7 #ifndef __EROFS_FS_COMPRESS_H
8 #define __EROFS_FS_COMPRESS_H
9
10 #include "internal.h"
11
12 enum {
13 Z_EROFS_COMPRESSION_SHIFTED = Z_EROFS_COMPRESSION_MAX,
14 Z_EROFS_COMPRESSION_RUNTIME_MAX
15 };
16
17 struct z_erofs_decompress_req {
18 struct super_block *sb;
19 struct page **in, **out;
20
21 unsigned short pageofs_out;
22 unsigned int inputsize, outputsize;
23
24
25 unsigned int alg;
26 bool inplace_io, partial_decoding;
27 };
28
29
30
31
32
33
34 #define Z_EROFS_MAPPING_STAGING ((void *)0x5A110C8D)
35
36
37 static inline bool z_erofs_page_is_staging(struct page *page)
38 {
39 return page->mapping == Z_EROFS_MAPPING_STAGING;
40 }
41
42 static inline bool z_erofs_put_stagingpage(struct list_head *pagepool,
43 struct page *page)
44 {
45 if (!z_erofs_page_is_staging(page))
46 return false;
47
48
49 if (page_ref_count(page) > 1)
50 put_page(page);
51 else
52 list_add(&page->lru, pagepool);
53 return true;
54 }
55
56 int z_erofs_decompress(struct z_erofs_decompress_req *rq,
57 struct list_head *pagepool);
58
59 #endif
60