Lines Matching defs:node
51 struct dirtree *node;
56 static void print(long long size, struct dirtree *node)
74 if (node) name = dirtree_path(node, NULL);
76 if (node) free(name);
110 // dirtree callback, compute/display size of node
111 static int do_du(struct dirtree *node)
115 if (!node->parent) TT.st_dev = node->st.st_dev;
116 else if (!dirtree_notdotdot(node)) return 0;
119 if (FLAG(x) && (TT.st_dev != node->st.st_dev))
124 struct dirtree *try = node;
127 if (node->st.st_dev==try->st.st_dev && node->st.st_ino==try->st.st_ino)
132 if (!FLAG(l) && !node->again)
133 if (seen_inode(&TT.inodes, &node->st)) return 0;
136 if (S_ISDIR(node->st.st_mode)) {
137 if (!node->again) {
145 blocks = FLAG(b) ? node->st.st_size : node->st.st_blocks;
146 blocks += (unsigned long)node->extra;
147 node->extra = blocks;
148 if (node->parent)
149 node->parent->extra = (unsigned long)node->parent->extra+blocks;
150 else TT.total += node->extra;
152 if (FLAG(a) || !node->parent || (S_ISDIR(node->st.st_mode) && !FLAG(s))) {
153 blocks = node->extra;
154 print(FLAG(b) ? blocks : blocks*512LL, node);