Lines Matching refs:inode

165     blobfs_inode_t* inode = inode_block->GetInode();
166 inode->blob_size = length;
167 inode->num_blocks = MerkleTreeBlocks(*inode) + data_blocks;
168 inode->flags |= (compressed ? kBlobFlagLZ4Compressed : 0);
170 if ((status = bs->AllocateBlocks(inode->num_blocks,
171 reinterpret_cast<size_t*>(&inode->start_block))) != ZX_OK) {
174 } else if ((status = bs->WriteData(inode, merkle.get(), data)) != ZX_OK) {
176 } else if ((status = bs->WriteBitmap(inode->num_blocks, inode->start_block)) != ZX_OK) {
485 zx_status_t Blobfs::WriteData(blobfs_inode_t* inode, const void* merkle_data, const void* blob_data) {
486 const size_t merkle_blocks = MerkleTreeBlocks(*inode);
487 const size_t data_blocks = inode->num_blocks - merkle_blocks;
490 uint64_t bno = data_start_block_ + inode->start_block + n;
504 if (inode->blob_size < off + kBlobfsBlockSize) {
507 memcpy(last_data, data, inode->blob_size - off);
511 uint64_t bno = data_start_block_ + inode->start_block + merkle_blocks + n;
559 // Set cache to 0 so we can return a pointer to an empty inode
572 blobfs_inode_t inode = *GetNode(node_index);
575 uint64_t data_blocks = BlobDataBlocks(inode);
576 uint64_t merkle_blocks = MerkleTreeBlocks(inode);
587 if (inode.flags & kBlobFlagLZ4Compressed) {
590 ReadBlock(data_start_block_ + inode.start_block + i);
595 size_t compressed_blocks = (inode.num_blocks - merkle_blocks);
607 ReadBlock(data_start_block_ + inode.start_block + i + merkle_blocks);
613 target_size = inode.blob_size;
619 if (target_size != inode.blob_size) {
621 target_size, inode.blob_size);
626 for (unsigned i = 0; i < inode.num_blocks; i++) {
627 ReadBlock(data_start_block_ + inode.start_block + i);
634 Digest digest(&inode.merkle_root_hash[0]);
635 return MerkleTree::Verify(data_ptr, inode.blob_size, data.get(),
636 MerkleTree::GetTreeLength(inode.blob_size), 0,
637 inode.blob_size, digest);