Add unlink() syscall and /bin/rm.

This patch adds most of the plumbing for working file deletion in Ext2FS.
Directory entries are removed and inode link counts updated.
We don't yet update the inode or block bitmaps, I will do that separately.
This commit is contained in:
Andreas Kling
2019-01-22 07:03:44 +01:00
parent 2f2f28f212
commit bda0c935c2
16 changed files with 142 additions and 6 deletions

View File

@@ -34,6 +34,7 @@ private:
virtual void flush_metadata() override;
virtual bool write(const ByteBuffer&) override;
virtual bool add_child(InodeIdentifier child_id, const String& name, byte file_type, int& error) override;
virtual bool remove_child(const String& name, int& error) override;
virtual RetainPtr<Inode> parent() const override;
virtual int set_atime(Unix::time_t) override;
virtual int set_ctime(Unix::time_t) override;
@@ -105,6 +106,8 @@ private:
bool set_inode_allocation_state(unsigned inode, bool);
bool set_block_allocation_state(GroupIndex, BlockIndex, bool);
void uncache_inode(InodeIndex);
unsigned m_blockGroupCount { 0 };
mutable ByteBuffer m_cached_super_block;