Avoid mounting images inside images (inside images (inside images...)).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26996 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -222,6 +222,7 @@ Partition::AddChild()
|
|||||||
status_t
|
status_t
|
||||||
Partition::_Mount(file_system_module_info *module, Directory **_fileSystem)
|
Partition::_Mount(file_system_module_info *module, Directory **_fileSystem)
|
||||||
{
|
{
|
||||||
|
static int fileMapDiskDepth = 0;
|
||||||
TRACE(("%p Partition::_Mount check for file_system: %s\n",
|
TRACE(("%p Partition::_Mount check for file_system: %s\n",
|
||||||
this, module->pretty_name));
|
this, module->pretty_name));
|
||||||
|
|
||||||
@@ -236,13 +237,16 @@ Partition::_Mount(file_system_module_info *module, Directory **_fileSystem)
|
|||||||
|
|
||||||
fIsFileSystem = true;
|
fIsFileSystem = true;
|
||||||
|
|
||||||
// see if it contains an image file we could mount in turn
|
// if we aren't already mounting an image
|
||||||
// XXX: avoid recursing too much
|
if (!fileMapDiskDepth++) {
|
||||||
FileMapDisk *disk = FileMapDisk::FindAnyFileMapDisk(fileSystem);
|
// see if it contains an image file we could mount in turn
|
||||||
if (disk) {
|
FileMapDisk *disk = FileMapDisk::FindAnyFileMapDisk(fileSystem);
|
||||||
TRACE(("%p Partition::_Mount: found FileMapDisk\n", this));
|
if (disk) {
|
||||||
add_partitions_for(disk, true, false);
|
TRACE(("%p Partition::_Mount: found FileMapDisk\n", this));
|
||||||
|
add_partitions_for(disk, true, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
fileMapDiskDepth--;
|
||||||
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user