+ // TODO: If this needs to be rescanned later, having the subvolume list separate might be an idea
+ real_vol = malloc( sizeof(tLVM_Vol) + strlen(Name) + 1 + sizeof(tLVM_SubVolume*) * dummy_vol.nSubVolumes );
+ real_vol->Next = NULL;
+ real_vol->Type = Type;
+ real_vol->Ptr = Ptr;
+ real_vol->BlockSize = BlockSize;
+ real_vol->BlockCount = BlockCount;
+ real_vol->nSubVolumes = dummy_vol.nSubVolumes;
+ real_vol->SubVolumes = (void*)( real_vol->Name + strlen(Name) + 1 );
+ real_vol->BlockSize = BlockSize;
+ strcpy(real_vol->Name, Name);
+ memset(real_vol->SubVolumes, 0, sizeof(tLVM_SubVolume*) * real_vol->nSubVolumes);
+ // - VFS Nodes
+ memset(&real_vol->DirNode, 0, sizeof(tVFS_Node));
+ real_vol->DirNode.Type = &gLVM_VolNodeType;
+ real_vol->DirNode.ImplPtr = real_vol;
+ real_vol->DirNode.Flags = VFS_FFLAG_DIRECTORY;
+ real_vol->DirNode.Size = -1;
+ memset(&real_vol->VolNode, 0, sizeof(tVFS_Node));
+ real_vol->VolNode.Type = &gLVM_VolNodeType;
+ real_vol->VolNode.ImplPtr = real_vol;
+ real_vol->VolNode.Size = BlockCount * BlockSize;