Function report |
Source Code:fs\verity\verify.c |
Create Date:2022-07-28 20:24:58 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Verify a single data page against the file's Merkle tree
Proto:static bool verify_page(struct inode *inode, const struct fsverity_info *vi, struct ahash_request *req, struct page *data_page)
Type:bool
Parameter:
Type | Parameter | Name |
---|---|---|
struct inode * | inode | |
const struct fsverity_info * | vi | |
struct ahash_request * | req | |
struct page * | data_page |
89 | params = tree_params |
100 | If WARN_ON_ONCE(!PageLocked(data_page) || PageUptodate(data_page)) Then Return false |
103 | pr_debug_ratelimited("Verifying data page %lu...\n", index) |
110 | When level < umber of levels in Merkle tree cycle |
117 | pr_debug_ratelimited("Level %d: hindex=%lu, hoffset=%u\n", level, hindex, hoffset) |
120 | hpage = read_merkle_tree_page(inode, hindex) |
124 | fsverity_err(inode, "Error %d reading Merkle tree page %lu", err, hindex) |
127 | Go to out |
130 | If PageChecked(hpage) Then |
132 | want_hash = _want_hash |
134 | pr_debug_ratelimited("Hash page already checked, want %s:%*phN\n", crypto API name, e.g. sha256 , hsize, want_hash) |
137 | Go to descend |
139 | pr_debug_ratelimited("Hash page not yet checked\n") |
145 | pr_debug("Want root hash: %s:%*phN\n", crypto API name, e.g. sha256 , hsize, want_hash) |
147 | descend : |
159 | SetPageChecked(hpage) |
161 | want_hash = _want_hash |
163 | pr_debug("Verified hash page at level %d, now want %s:%*phN\n", level - 1, crypto API name, e.g. sha256 , hsize, want_hash) |
172 | out : |
173 | When level > 0 cycle Perform a free_page(), also freeing any swap cache associated with* this page if it is the last user of the page. |
176 | Return err == 0 |
Name | Describe |
---|---|
fsverity_verify_page | sverity_verify_page() - verify a data page* Verify a page that has just been read from a verity file. The page must be a* pagecache page that is still locked and not yet uptodate.* Return: true if the page is valid, else false. |
fsverity_verify_bio | sverity_verify_bio() - verify a 'read' bio that has just completed* Verify a set of pages that have just been read from a verity file. The pages* must be pagecache pages that are still locked and not yet uptodate. Pages |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |