Lines Matching refs:inode
18 * @inode: the inode for which the Merkle tree is being built
31 const struct inode *inode,
46 hash_alg = fsverity_get_hash_alg(inode, hash_algorithm);
57 fsverity_err(inode, "Error %d preparing hash state", err);
77 log_blocksize > inode->i_blkbits) {
78 fsverity_warn(inode, "Unsupported log_blocksize: %u",
93 fsverity_warn(inode,
114 fsverity_err(inode, "Too many levels in Merkle tree");
144 fsverity_err(inode, "Too many blocks in Merkle tree");
184 struct fsverity_info *fsverity_create_info(const struct inode *inode,
190 err = code_sign_check_descriptor_hook(inode, desc);
192 fsverity_err(inode, "Invalid code sign descriptor.");
201 vi->inode = inode;
203 err = fsverity_init_merkle_tree_params(&vi->tree_params, inode,
209 fsverity_err(inode,
220 fsverity_err(inode, "Error %d computing file digest", err);
268 void fsverity_set_info(struct inode *inode, struct fsverity_info *vi)
276 if (cmpxchg_release(&inode->i_verity_info, NULL, vi) != NULL) {
283 (void)fsverity_get_info(inode);
296 static bool validate_fsverity_descriptor(struct inode *inode,
301 fsverity_err(inode, "Unrecognized descriptor size: %zu bytes",
307 fsverity_err(inode, "Unrecognized descriptor version: %u",
313 fsverity_err(inode, "Reserved bits set in descriptor");
318 fsverity_err(inode, "Invalid salt_size: %u", desc->salt_size);
322 if (le64_to_cpu(desc->data_size) != inode->i_size) {
323 fsverity_err(inode,
324 "Wrong data_size: %llu (desc) != %lld (inode)",
325 le64_to_cpu(desc->data_size), inode->i_size);
330 fsverity_err(inode, "Signature overflows verity descriptor");
338 * Read the inode's fsverity_descriptor (with optional appended builtin
341 int fsverity_get_descriptor(struct inode *inode,
347 res = inode->i_sb->s_vop->get_verity_descriptor(inode, NULL, 0);
349 fsverity_err(inode,
354 fsverity_err(inode, "Verity descriptor is too large (%d bytes)",
361 res = inode->i_sb->s_vop->get_verity_descriptor(inode, desc, res);
363 fsverity_err(inode, "Error %d reading verity descriptor", res);
368 if (!validate_fsverity_descriptor(inode, desc, res)) {
377 /* Ensure the inode has an ->i_verity_info */
378 static int ensure_verity_info(struct inode *inode)
380 struct fsverity_info *vi = fsverity_get_info(inode);
387 err = fsverity_get_descriptor(inode, &desc);
391 vi = fsverity_create_info(inode, desc);
397 fsverity_set_info(inode, vi);
404 int __fsverity_file_open(struct inode *inode, struct file *filp)
408 return ensure_verity_info(inode);
420 void __fsverity_cleanup_inode(struct inode *inode)
422 fsverity_free_info(inode->i_verity_info);
423 inode->i_verity_info = NULL;