MCPcopy Create free account
hub / github.com/Simple-XX/SimpleKernel / FreeInode

Method FreeInode

src/filesystem/ramfs/ramfs.cpp:136–163  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

134}
135
136auto RamFs::FreeInode(Inode* inode) -> Expected<void> {
137 if (inode == nullptr) {
138 return std::unexpected(Error(ErrorCode::kInvalidArgument));
139 }
140
141 RamInode* ram_inode = static_cast<RamInode*>(inode->fs_private);
142
143 // Data lives in static pools; just clear the pointer (no individual reclaim)
144 if (ram_inode->data != nullptr) {
145 ram_inode->data = nullptr;
146 }
147
148 // 重置 inode
149 ram_inode->inode.type = FileType::kUnknown;
150 ram_inode->inode.size = 0;
151 ram_inode->inode.fs_private = nullptr;
152 ram_inode->inode.ops = nullptr;
153
154 ram_inode->capacity = 0;
155 ram_inode->child_count = 0;
156
157 // 加入空闲链表
158 ram_inode->next_free = free_list_;
159 free_list_ = ram_inode;
160
161 --used_inodes_;
162 return {};
163}
164
165auto RamFs::GetRootInode() const -> Inode* { return root_inode_; }
166

Callers 3

CreateMethod · 0.45
UnlinkMethod · 0.45
RmdirMethod · 0.45

Calls 1

ErrorClass · 0.85

Tested by

no test coverage detected