Lines Matching refs:inode

104 	DPRINTF(debug, "bfs super block + inode area = %zd\n", memsize);
177 struct bfs_inode *inode, *root_inode;
185 bfs->inode = (struct bfs_inode *)(p + sizeof(struct bfs_super_block));
189 inode = bfs->inode;
191 for (i = 0; i < bfs->max_inode; i++, inode++) {
192 if (inode->number != 0) {
194 if (inode->number == BFS_ROOT_INODE)
195 root_inode = inode;
198 DPRINTF(bfs->debug, "inode: %d/%d\n", bfs->n_inode, bfs->max_inode);
205 DPRINTF(bfs->debug, "root inode: %d-%d\n", root_inode->start_sector,
219 struct bfs_inode *inode = bfs->root_inode;
222 n = inode->end_sector - inode->start_sector + 1;
225 bfs->start_sector + inode->start_sector, n))
234 if (file->inode != 0)
285 struct bfs_inode *inode;
286 if (!bfs_inode_lookup(bfs, dirent->inode, &inode)) {
287 DPRINTF(bfs->debug, "%s: dirent found, but inode "
292 attr = inode->attr; /* copy old attribute */
313 struct bfs_inode *inode;
319 if (!bfs_inode_lookup(bfs, dirent->inode, &inode))
323 memset(inode, 0, sizeof *inode);
328 bfs_writeback_inode(bfs, inode);
360 struct bfs_inode *inode;
367 if ((err = bfs_inode_alloc(bfs, &inode, &j, &start)) != 0)
382 if (file->inode == 0)
390 memset(inode, 0, sizeof *inode);
391 inode->number = j;
392 inode->start_sector = start;
393 inode->end_sector = start + n;
394 inode->eof_offset_byte = start * DEV_BSIZE + bufsz - 1;
396 inode->attr.type = 1;
397 inode->attr.mode = 0;
398 inode->attr.nlink = 1;
399 bfs_inode_set_attr(bfs, inode, attr);
403 file->inode = inode->number;
407 inode->start_sector, inode->end_sector);
413 for (i = inode->start_sector; i < inode->end_sector; i++) {
429 bfs_writeback_inode(bfs, inode);
449 /* update root directory inode */
471 bfs_writeback_inode(const struct bfs *bfs, struct bfs_inode *inode)
473 struct bfs_inode *inode_base = bfs->inode;
476 i = ((inode - inode_base) * sizeof *inode) >> DEV_BSHIFT;
487 struct bfs_inode *inode;
492 if (!bfs_inode_lookup(bfs, dirent->inode, &inode))
496 *start = inode->start_sector + bfs->start_sector;
498 *end = inode->end_sector + bfs->start_sector;
500 *size = bfs_file_size(inode);
503 fname, bfs->start_sector, inode->start_sector,
504 inode->end_sector, *size);
510 bfs_dirent_lookup_by_inode(const struct bfs *bfs, int inode,
517 if (file->inode == inode)
536 if ((file->inode != 0) &&
551 struct bfs_inode *inode;
554 for (inode = bfs->inode, i = 0; i < bfs->max_inode; i++, inode++)
555 if (inode->number == n)
561 *iinode = inode;
567 bfs_file_size(const struct bfs_inode *inode)
570 return inode->eof_offset_byte - inode->start_sector * DEV_BSIZE + 1;
577 struct bfs_inode *jnode, *inode;
581 inode = bfs->inode;
584 for (i = BFS_ROOT_INODE; i < bfs->max_inode; i++, inode++) {
590 if (jnode == 0 && (inode->number == 0))
591 jnode = inode;
594 if (inode->number != 0) {
595 if (inode->end_sector > start)
596 start = inode->end_sector;
597 if (inode->number == j)
624 bfs_inode_set_attr(const struct bfs *bfs, struct bfs_inode *inode,
627 struct bfs_fileattr *to = &inode->attr;
643 bfs_writeback_inode(bfs, inode);
658 const struct bfs_inode *inode;
670 DPRINTF(bfs->debug, "super block %zdbyte, inode %zdbyte, dirent %zdbyte\n",
671 sizeof *bfs->super_block, sizeof *inode, sizeof *file);
683 /* inode list */
684 DPRINTF(bfs->debug, "[inode index list]\n");
685 for (inode = bfs->inode, i = j = 0; i < bfs->max_inode; inode++, i++) {
686 if (inode->number != 0) {
687 const struct bfs_fileattr *attr = &inode->attr;
689 inode->number,
690 inode->eof_offset_byte -
691 (inode->start_sector * DEV_BSIZE) + 1,/* file size*/
692 inode->start_sector,
693 inode->end_sector, i);
712 if (file->inode != 0) {
715 file->inode, file->name, s, e, bytes);