Lines Matching refs:inode

41     zx_status_t GetInode(minfs_inode_t* inode, ino_t ino);
43 // Returns the nth block within an inode, relative to the start of the
48 zx_status_t GetInodeNthBno(minfs_inode_t* inode, blk_t n, blk_t* next_n,
50 zx_status_t CheckDirectory(minfs_inode_t* inode, ino_t ino,
53 zx_status_t CheckFile(minfs_inode_t* inode, ino_t ino);
69 zx_status_t MinfsChecker::GetInode(minfs_inode_t* inode, ino_t ino) {
76 fs_->inodes_->Load(ino, inode);
77 if ((inode->magic != kMinfsMagicFile) && (inode->magic != kMinfsMagicDir)) {
78 FS_TRACE_ERROR("check: ino %u has bad magic %#x\n", ino, inode->magic);
87 zx_status_t MinfsChecker::GetInodeNthBno(minfs_inode_t* inode, blk_t n,
93 *bno_out = inode->dnum[n];
103 if ((ibno = inode->inum[i]) == 0) {
130 if ((dibno = inode->dinum[i]) == 0) {
170 zx_status_t MinfsChecker::CheckDirectory(minfs_inode_t* inode, ino_t ino,
190 if (inode->dirent_count >= 2 && inode->dirent_count == eno - 1) {
192 // inode says that we shouldn't have been able to read it anyway.
194 inode->dirent_count);
266 if (dirent_count != inode->dirent_count) {
268 ino, inode->dirent_count, dirent_count);
297 zx_status_t MinfsChecker::CheckFile(minfs_inode_t* inode, ino_t ino) {
300 xprintf(" %d,", inode->dnum[n]);
308 if (inode->inum[n]) {
310 if ((msg = CheckDataBlock(inode->inum[n])) != nullptr) {
312 ino, n, inode->inum[n], msg);
321 if (inode->dinum[n]) {
323 if ((msg = CheckDataBlock(inode->dinum[n])) != nullptr) {
325 ino, n, inode->dinum[n], msg);
332 if ((status = fs_->ReadDat(inode->dinum[n], data)) != ZX_OK) {
363 if ((status = GetInodeNthBno(inode, n, &next_n, &bno)) < 0) {
383 unsigned max_blocks = fbl::round_up(inode->size, kMinfsBlockSize) / kMinfsBlockSize;
389 if (block_count != inode->block_count) {
391 ino, inode->block_count, block_count);
398 // Check reserved inode '0'.
403 FS_TRACE_WARN("check: reserved inode#0: not marked in-use\n");
418 minfs_inode_t inode;
421 if ((status = GetInode(&inode, ino)) < 0) {
428 if (inode.magic == kMinfsMagicDir && prev_checked && !dot_or_dotdot) {
440 links_[ino - 1] -= inode.link_count;
449 if (inode.magic == kMinfsMagicDir) {
450 xprintf("ino#%u: DIR blks=%u links=%u\n", ino, inode.block_count, inode.link_count);
451 if ((status = CheckFile(&inode, ino)) < 0) {
454 if ((status = CheckDirectory(&inode, ino, parent, CD_DUMP)) < 0) {
457 if ((status = CheckDirectory(&inode, ino, parent, CD_RECURSE)) < 0) {
461 xprintf("ino#%u: FILE blks=%u links=%u size=%u\n", ino, inode.block_count, inode.link_count,
462 inode.size);
463 if ((status = CheckFile(&inode, ino)) < 0) {
498 FS_TRACE_ERROR("check: %u allocated inode%s not in use\n",
510 FS_TRACE_ERROR("check: inode#%u has incorrect link count %u\n", n + 1, links_[n]);
515 FS_TRACE_ERROR("check: %u inode%s with incorrect link count\n",
531 FS_TRACE_ERROR("check: incorrect allocated inode count %u (should be %u)\n",