Lines Matching refs:node

19 #define CHECK_INODE(node)						\  argument
21 assert(node >= &inode[0] && node < &inode[nr_inodes]); \
22 assert((unsigned int)(node - &inode[0]) == node->i_num);\
23 assert(node == &inode[0] || node->i_parent != NULL || \
24 (node->i_flags & I_DELETED)); \
34 struct inode *node; local
71 node = &inode[i];
72 node->i_num = i;
73 node->i_name = NULL;
74 node->i_parent = NULL;
75 node->i_count = 0;
76 TAILQ_INIT(&node->i_children);
77 TAILQ_INSERT_HEAD(&unused_inodes, node, i_unused);
87 node = &inode[0];
88 node->i_num = 0;
89 node->i_parent = NULL;
90 node->i_count = 0;
91 TAILQ_INIT(&node->i_children);
92 node->i_flags = 0;
93 node->i_index = NO_INDEX;
94 set_inode_stat(node, istat);
95 node->i_indexed = nr_indexed_entries;
96 node->i_cbdata = NULL;
156 struct inode *node; in purge_inode() local
166 node = &inode[last_checked]; in purge_inode()
169 if (node != parent && node->i_index != NO_INDEX && in purge_inode()
170 node->i_count == 0 && TAILQ_EMPTY(&node->i_children)) { in purge_inode()
172 assert(!(node->i_flags & I_DELETED)); in purge_inode()
174 delete_inode(node); in purge_inode()
266 get_inode_name(const struct inode * node) in get_inode_name() argument
269 CHECK_INODE(node); in get_inode_name()
270 assert(!(node->i_flags & I_DELETED)); in get_inode_name()
271 assert(node->i_name != NULL); in get_inode_name()
273 return node->i_name; in get_inode_name()
280 get_inode_index(const struct inode * node) in get_inode_index() argument
283 CHECK_INODE(node); in get_inode_index()
285 return node->i_index; in get_inode_index()
292 get_inode_slots(const struct inode * node) in get_inode_slots() argument
295 CHECK_INODE(node); in get_inode_slots()
297 return node->i_indexed; in get_inode_slots()
304 get_inode_cbdata(const struct inode * node) in get_inode_cbdata() argument
307 CHECK_INODE(node); in get_inode_cbdata()
309 return node->i_cbdata; in get_inode_cbdata()
316 get_parent_inode(const struct inode * node) in get_parent_inode() argument
319 CHECK_INODE(node); in get_parent_inode()
322 if (node == &inode[0]) in get_parent_inode()
325 return node->i_parent; in get_parent_inode()
334 struct inode *node; in get_first_inode() local
339 node = TAILQ_FIRST(&parent->i_children); in get_first_inode()
341 while (node != NULL && (node->i_flags & I_DELETED)) in get_first_inode()
342 node = TAILQ_NEXT(node, i_siblings); in get_first_inode()
344 return node; in get_first_inode()
353 struct inode *node; in get_next_inode() local
357 node = TAILQ_NEXT(previous, i_siblings); in get_next_inode()
359 while (node != NULL && (node->i_flags & I_DELETED)) in get_next_inode()
360 node = TAILQ_NEXT(node, i_siblings); in get_next_inode()
362 return node; in get_next_inode()
369 get_inode_number(const struct inode * node) in get_inode_number() argument
372 CHECK_INODE(node); in get_inode_number()
374 return node->i_num + 1; in get_inode_number()
381 get_inode_stat(const struct inode * node, struct inode_stat * istat) in get_inode_stat() argument
384 CHECK_INODE(node); in get_inode_stat()
386 *istat = node->i_stat; in get_inode_stat()
393 set_inode_stat(struct inode * node, struct inode_stat * istat) in set_inode_stat() argument
396 CHECK_INODE(node); in set_inode_stat()
398 node->i_stat = *istat; in set_inode_stat()
407 struct inode *node; in get_inode_by_name() local
416 LIST_FOREACH(node, &parent_name_head[slot], i_hname) { in get_inode_by_name()
417 if (parent == node->i_parent && !strcmp(name, node->i_name)) in get_inode_by_name()
418 return node; /* found */ in get_inode_by_name()
430 struct inode *node; in get_inode_by_index() local
442 LIST_FOREACH(node, &parent_index_head[slot], i_hindex) { in get_inode_by_index()
443 if (parent == node->i_parent && idx == node->i_index) in get_inode_by_index()
444 return node; /* found */ in get_inode_by_index()
456 struct inode *node; in find_inode() local
458 node = &inode[num - 1]; in find_inode()
460 CHECK_INODE(node); in find_inode()
462 return node; in find_inode()
471 struct inode *node; in get_inode() local
473 if ((node = find_inode(num)) == NULL) in get_inode()
476 node->i_count++; in get_inode()
477 return node; in get_inode()
484 put_inode(struct inode * node) in put_inode() argument
487 CHECK_INODE(node); in put_inode()
488 assert(node->i_count > 0); in put_inode()
490 node->i_count--; in put_inode()
496 if ((node->i_flags & I_DELETED) && node->i_count == 0) in put_inode()
497 delete_inode(node); in put_inode()
504 ref_inode(struct inode * node) in ref_inode() argument
507 CHECK_INODE(node); in ref_inode()
509 node->i_count++; in ref_inode()
516 unlink_inode(struct inode * node) in unlink_inode() argument
520 assert(node->i_flags & I_DELETED); in unlink_inode()
522 parent = node->i_parent; in unlink_inode()
527 node->i_parent = NULL; in unlink_inode()
529 TAILQ_REMOVE(&parent->i_children, node, i_siblings); in unlink_inode()
544 delete_inode(struct inode * node) in delete_inode() argument
548 CHECK_INODE(node); in delete_inode()
549 assert(node != &inode[0]); in delete_inode()
555 if (!(node->i_flags & I_DELETED)) { in delete_inode()
557 TAILQ_FOREACH_SAFE(cnode, &node->i_children, i_siblings, ctmp) in delete_inode()
561 LIST_REMOVE(node, i_hname); in delete_inode()
564 if (node->i_index != NO_INDEX) in delete_inode()
565 LIST_REMOVE(node, i_hindex); in delete_inode()
568 assert(node->i_name != NULL); in delete_inode()
569 if (node->i_name != node->i_namebuf) in delete_inode()
570 free(node->i_name); in delete_inode()
571 node->i_name = NULL; in delete_inode()
573 node->i_flags |= I_DELETED; in delete_inode()
579 if (!S_ISDIR(node->i_stat.mode)) in delete_inode()
580 unlink_inode(node); in delete_inode()
583 if (node->i_count == 0 && TAILQ_EMPTY(&node->i_children)) { in delete_inode()
588 if (node->i_parent != NULL) in delete_inode()
589 unlink_inode(node); in delete_inode()
592 TAILQ_INSERT_HEAD(&unused_inodes, node, i_unused); in delete_inode()
600 is_inode_deleted(const struct inode * node) in is_inode_deleted() argument
603 return (node->i_flags & I_DELETED); in is_inode_deleted()
613 struct inode *node; in fs_putnode() local
616 if ((node = find_inode(ino_nr)) == NULL) in fs_putnode()
620 assert(node->i_count >= count); in fs_putnode()
622 node->i_count -= count - 1; in fs_putnode()
623 put_inode(node); in fs_putnode()