summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-01-11 15:31:17 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-01-11 15:31:17 +0100
commitb92992c94adb77e57636b1c1d8d322f70402c823 (patch)
tree701d6d32a20aeb6476f685dd35fcb2ba84dff96a
parent386645ea458ecf5fc4cde68092881df19dfb8258 (diff)
FIX: Fork create.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
-rw-r--r--dev/Kernel/src/FS/NeFS.cc14
1 files changed, 6 insertions, 8 deletions
diff --git a/dev/Kernel/src/FS/NeFS.cc b/dev/Kernel/src/FS/NeFS.cc
index 28970215..21618239 100644
--- a/dev/Kernel/src/FS/NeFS.cc
+++ b/dev/Kernel/src/FS/NeFS.cc
@@ -76,6 +76,7 @@ _Output NFS_FORK_STRUCT* NeFileSystemParser::CreateFork(_Input NFS_CATALOG_STRUC
rt_string_len("fs/nefs-packet"));
NFS_FORK_STRUCT cur_fork{0};
+ NFS_FORK_STRUCT prev_fork{0};
Lba lba_prev_fork = lba;
/// do not check for anything. Loop until we get what we want, that is a free fork zone.
@@ -87,7 +88,9 @@ _Output NFS_FORK_STRUCT* NeFileSystemParser::CreateFork(_Input NFS_CATALOG_STRUC
drv.fInput(&drv.fPacket);
- kcout << "Next fork: " << hex_number(cur_fork.NextSibling) << endl;
+ lba_prev_fork = lba;
+ lba = cur_fork.NextSibling;
+ prev_fork = cur_fork;
if (cur_fork.Flags & kNeFSFlagCreated)
{
@@ -98,11 +101,6 @@ _Output NFS_FORK_STRUCT* NeFileSystemParser::CreateFork(_Input NFS_CATALOG_STRUC
kcout << "Fork already exists.\r";
return nullptr;
}
-
- kcout << "Next fork: " << hex_number(cur_fork.NextSibling) << endl;
-
- lba_prev_fork = lba;
- lba = cur_fork.NextSibling;
}
else
{
@@ -112,8 +110,8 @@ _Output NFS_FORK_STRUCT* NeFileSystemParser::CreateFork(_Input NFS_CATALOG_STRUC
the_fork.Flags |= kNeFSFlagCreated;
the_fork.DataOffset = lba - sizeof(NFS_FORK_STRUCT);
+ the_fork.NextSibling = the_fork.DataOffset - the_fork.DataSize;
the_fork.PreviousSibling = lba_prev_fork;
- the_fork.NextSibling = the_fork.DataOffset - the_fork.DataSize - sizeof(NFS_FORK_STRUCT);
drv.fPacket.fPacketLba = lba;
drv.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT);
@@ -1026,7 +1024,7 @@ namespace Kernel::Detail
{
kcout << "Creating A:\r";
- kDiskMountpoint.A() = io_construct_main_drive();
+ kDiskMountpoint.A() = io_construct_main_drive();
kDiskMountpoint.A().fPacket.fPacketDrive = &kDiskMountpoint.A();
kcout << "Creating A: [ OK ]\r";